1*31245Sminshall #include <ctype.h> 2*31245Sminshall 3*31245Sminshall #include "../general/general.h" 4*31245Sminshall 5*31245Sminshall #include "../ctlr/function.h" 6*31245Sminshall 731240Sminshall #include "astosc.h" 831240Sminshall #include "state.h" 931240Sminshall 1031240Sminshall struct astosc astosc[256] = { 1131240Sminshall #include "astosc.out" 1231240Sminshall }; 1331240Sminshall 14*31245Sminshall /* compare two strings, ignoring case */ 1531240Sminshall 16*31245Sminshall static 17*31245Sminshall ustrcmp(string1, string2) 18*31245Sminshall register char *string1; 19*31245Sminshall register char *string2; 20*31245Sminshall { 21*31245Sminshall register int c1, c2; 22*31245Sminshall 23*31245Sminshall while ((c1 = (unsigned char) *string1++) != 0) { 24*31245Sminshall if (isupper(c1)) { 25*31245Sminshall c1 = tolower(c1); 26*31245Sminshall } 27*31245Sminshall if (isupper(c2 = (unsigned char) *string2++)) { 28*31245Sminshall c2 = tolower(c2); 29*31245Sminshall } 30*31245Sminshall if (c1 < c2) { 31*31245Sminshall return(-1); 32*31245Sminshall } else if (c1 > c2) { 33*31245Sminshall return(1); 34*31245Sminshall } 35*31245Sminshall } 36*31245Sminshall if (*string2) { 37*31245Sminshall return(-1); 38*31245Sminshall } else { 39*31245Sminshall return(0); 40*31245Sminshall } 41*31245Sminshall } 42*31245Sminshall 43*31245Sminshall 4431240Sminshall /* 4531240Sminshall * This routine takes a string and returns an integer. It may return 4631240Sminshall * STATE_NULL if there is no other integer which corresponds to the 4731240Sminshall * string. STATE_NULL implies an error. 4831240Sminshall */ 4931240Sminshall 5031240Sminshall int 5131240Sminshall ascii_to_index(string) 5231240Sminshall register char *string; 5331240Sminshall { 5431240Sminshall register struct astosc *this; 5531240Sminshall 5631240Sminshall for (this = astosc; this <= &astosc[highestof(astosc)]; this++) { 57*31245Sminshall if (ustrcmp(this->name, string) == 0) { 5831240Sminshall return this-astosc; 5931240Sminshall } 6031240Sminshall } 6131240Sminshall return STATE_NULL; 6231240Sminshall } 63