| #include "string.h" |
| #include "ctype.h" |
| |
| unsigned char _ctype[] = { |
| _C,_C,_C,_C,_C,_C,_C,_C, /* 0-7 */ |
| _C,_C|_S,_C|_S,_C|_S,_C|_S,_C|_S,_C,_C, /* 8-15 */ |
| _C,_C,_C,_C,_C,_C,_C,_C, /* 16-23 */ |
| _C,_C,_C,_C,_C,_C,_C,_C, /* 24-31 */ |
| _S|_SP,_P,_P,_P,_P,_P,_P,_P, /* 32-39 */ |
| _P,_P,_P,_P,_P,_P,_P,_P, /* 40-47 */ |
| _D,_D,_D,_D,_D,_D,_D,_D, /* 48-55 */ |
| _D,_D,_P,_P,_P,_P,_P,_P, /* 56-63 */ |
| _P,_U|_X,_U|_X,_U|_X,_U|_X,_U|_X,_U|_X,_U, /* 64-71 */ |
| _U,_U,_U,_U,_U,_U,_U,_U, /* 72-79 */ |
| _U,_U,_U,_U,_U,_U,_U,_U, /* 80-87 */ |
| _U,_U,_U,_P,_P,_P,_P,_P, /* 88-95 */ |
| _P,_L|_X,_L|_X,_L|_X,_L|_X,_L|_X,_L|_X,_L, /* 96-103 */ |
| _L,_L,_L,_L,_L,_L,_L,_L, /* 104-111 */ |
| _L,_L,_L,_L,_L,_L,_L,_L, /* 112-119 */ |
| _L,_L,_L,_P,_P,_P,_P,_C, /* 120-127 */ |
| 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 128-143 */ |
| 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 144-159 */ |
| _S|_SP,_P,_P,_P,_P,_P,_P,_P,_P,_P,_P,_P,_P,_P,_P,_P, /* 160-175 */ |
| _P,_P,_P,_P,_P,_P,_P,_P,_P,_P,_P,_P,_P,_P,_P,_P, /* 176-191 */ |
| _U,_U,_U,_U,_U,_U,_U,_U,_U,_U,_U,_U,_U,_U,_U,_U, /* 192-207 */ |
| _U,_U,_U,_U,_U,_U,_U,_P,_U,_U,_U,_U,_U,_U,_U,_L, /* 208-223 */ |
| _L,_L,_L,_L,_L,_L,_L,_L,_L,_L,_L,_L,_L,_L,_L,_L, /* 224-239 */ |
| _L,_L,_L,_L,_L,_L,_L,_P,_L,_L,_L,_L,_L,_L,_L,_L}; /* 240-255 */ |
| |
| |
| int strcasecmp(const char *s1, const char *s2) |
| { |
| int c1, c2; |
| |
| for (;;) { |
| c1 = *s1++; |
| if ('A' <= c1 && c1 <= 'Z') |
| c1 += 'a' - 'A'; |
| c2 = *s2++; |
| if ('A' <= c2 && c2 <= 'Z') |
| c2 += 'a' - 'A'; |
| if (c1 != c2 || c1 == 0) |
| return c1 - c2; |
| } |
| } |
| |
| int strncasecmp(const char *cs,const char *ct,size_t n) |
| { |
| signed char __res = 0; |
| while (n--) |
| if ((__res = tolower(*cs) - tolower(*ct++)) != 0 || !*cs++) |
| break; |
| return __res; |
| } |