1219b2ee8SDavid du Colombier #include <string.h> 2*91931124SDavid du Colombier 3*91931124SDavid du Colombier typedef unsigned char uchar; 4219b2ee8SDavid du Colombier 5219b2ee8SDavid du Colombier int strncasecmp(char * s1,char * s2,int n)6219b2ee8SDavid du Colombierstrncasecmp(char *s1, char *s2, int n) 7219b2ee8SDavid du Colombier { 8*91931124SDavid du Colombier int c1, c2; 9219b2ee8SDavid du Colombier 10*91931124SDavid du Colombier while(*s1 && n-- > 0){ 11*91931124SDavid du Colombier c1 = *(uchar*)s1++; 12*91931124SDavid du Colombier c2 = *(uchar*)s2++; 13*91931124SDavid du Colombier 14*91931124SDavid du Colombier if(c1 == c2) 15*91931124SDavid du Colombier continue; 16*91931124SDavid du Colombier 17*91931124SDavid du Colombier if(c1 >= 'A' && c1 <= 'Z') 18*91931124SDavid du Colombier c1 -= 'A' - 'a'; 19*91931124SDavid du Colombier 20*91931124SDavid du Colombier if(c2 >= 'A' && c2 <= 'Z') 21*91931124SDavid du Colombier c2 -= 'A' - 'a'; 22*91931124SDavid du Colombier 23*91931124SDavid du Colombier if(c1 != c2) 24*91931124SDavid du Colombier return c1 - c2; 25*91931124SDavid du Colombier } 26*91931124SDavid du Colombier if(n <= 0) 27219b2ee8SDavid du Colombier return 0; 28*91931124SDavid du Colombier return -*s2; 29219b2ee8SDavid du Colombier } 30