/*----------------------------------------------------------------------*\
 | Functions to find a state's name and abbreviation given its FIPS code|
\*----------------------------------------------------------------------*/

struct FIPS_data {
	int code;
	char *abbr;
	char *name;
	};

static struct FIPS_data state_code[] = {
	{ 1,"AL","Alabama"},
	{ 2,"AK","Alaska"},
	{ 4,"AZ","Arizona"},
	{ 5,"AR","Arkansas"},
	{ 6,"CA","California"},
	{ 8,"CO","Colorado"},
	{ 9,"CT","Connecticut"},
	{10,"DE","Delaware"},
	{11,"DC","District of Columbia"},
	{12,"FL","Florida"},
	{13,"GA","Georgia"},
	{15,"HI","Hawaii"},
	{16,"ID","Idaho"},
	{17,"IL","Illinois"},
	{18,"IN","Indiana"},
	{19,"IO","Iowa"},
	{20,"KS","Kansas"},
	{21,"KY","Kentucky"},
	{22,"LA","Louisiana"},
	{23,"ME","Maine"},
	{24,"MD","Maryland"},
	{25,"MA","Massachusetts"},
	{26,"MI","Michigan"},
	{27,"MN","Minnesota"},
	{28,"MS","Mississippi"},
	{29,"MO","Missouri"},
	{30,"MT","Montana"},
	{31,"NE","Nebraska"},
	{32,"NV","Nevada"},
	{33,"NH","New Hampshire"},
	{34,"NJ","New Jersey"},
	{35,"NM","New Mexico"},
	{36,"NY","New York"},
	{37,"NC","North Carolina"},
	{38,"ND","North Dakota"},
	{39,"OH","Ohio"},
	{40,"OK","Oklahoma"},
	{41,"OR","Oregon"},
	{42,"PA","Pennsylvania"},
	{44,"RI","Rhode Island"},
	{45,"SC","South Carolina"},
	{46,"SD","South Dakota"},
	{47,"TN","Tennessee"},
	{48,"TX","Texas"},
	{49,"UT","Utah"},
	{50,"VT","Vermont"},
	{51,"VA","Virginia"},
	{53,"WA","Washington"},
	{54,"WV","West Virginia"},
	{55,"WI","Wisconsin"},
	{56,"WY","Wyoming"},
	{00,"??","Unrecognized FIPS code"}
	};

/*----------------------------------------------------------------------*\
\*----------------------------------------------------------------------*/

char *state_name (int code) {
	struct FIPS_data *s;
	for (s=state_code; s->code && s->code != code; s++);
	return (s->name);
	}

char *state_abbr (int code) {
	struct FIPS_data *s;
	for (s=state_code; s->code && s->code != code; s++);
	return (s->abbr);
	}

/*----------------------------------------------------------------------*\
\*----------------------------------------------------------------------*/
