131245Sminshall #include <ctype.h> 231245Sminshall 331245Sminshall #include "../general/general.h" 431245Sminshall 531245Sminshall #include "../ctlr/function.h" 631245Sminshall 731240Sminshall #include "astosc.h" 831240Sminshall 931240Sminshall struct astosc astosc[256] = { 1031240Sminshall #include "astosc.out" 1131240Sminshall }; 1231240Sminshall 1331245Sminshall /* compare two strings, ignoring case */ 1431240Sminshall 1531245Sminshall static 1631245Sminshall ustrcmp(string1, string2) 1731245Sminshall register char *string1; 1831245Sminshall register char *string2; 1931245Sminshall { 2031245Sminshall register int c1, c2; 2131245Sminshall 2231245Sminshall while ((c1 = (unsigned char) *string1++) != 0) { 2331245Sminshall if (isupper(c1)) { 2431245Sminshall c1 = tolower(c1); 2531245Sminshall } 2631245Sminshall if (isupper(c2 = (unsigned char) *string2++)) { 2731245Sminshall c2 = tolower(c2); 2831245Sminshall } 2931245Sminshall if (c1 < c2) { 3031245Sminshall return(-1); 3131245Sminshall } else if (c1 > c2) { 3231245Sminshall return(1); 3331245Sminshall } 3431245Sminshall } 3531245Sminshall if (*string2) { 3631245Sminshall return(-1); 3731245Sminshall } else { 3831245Sminshall return(0); 3931245Sminshall } 4031245Sminshall } 4131245Sminshall 4231245Sminshall 4331240Sminshall /* 4431240Sminshall * This routine takes a string and returns an integer. It may return 4531606Sminshall * -1 if there is no other integer which corresponds to the 4631606Sminshall * string. -1 implies an error. 4731240Sminshall */ 4831240Sminshall 4931240Sminshall int 5031240Sminshall ascii_to_index(string) 5131240Sminshall register char *string; 5231240Sminshall { 5331240Sminshall register struct astosc *this; 5431240Sminshall 5531240Sminshall for (this = astosc; this <= &astosc[highestof(astosc)]; this++) { 56*31800Sminshall if ((this->name != 0) && (ustrcmp(this->name, string) == 0)) { 5731240Sminshall return this-astosc; 5831240Sminshall } 5931240Sminshall } 6031606Sminshall return -1; 6131240Sminshall } 62