xref: /csrg-svn/usr.bin/tn3270/api/astosc.c (revision 31800)
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