1 fd04aace 2003-11-23 devnull #include <u.h>
2 fd04aace 2003-11-23 devnull #include <libc.h>
5 fd04aace 2003-11-23 devnull cistrncmp(char *s1, char *s2, int n)
7 fd04aace 2003-11-23 devnull int c1, c2;
9 fd04aace 2003-11-23 devnull while(*s1 && n-- > 0){
10 fd04aace 2003-11-23 devnull c1 = *(uchar*)s1++;
11 fd04aace 2003-11-23 devnull c2 = *(uchar*)s2++;
13 fd04aace 2003-11-23 devnull if(c1 == c2)
14 fd04aace 2003-11-23 devnull continue;
16 fd04aace 2003-11-23 devnull if(c1 >= 'A' && c1 <= 'Z')
17 fd04aace 2003-11-23 devnull c1 -= 'A' - 'a';
19 fd04aace 2003-11-23 devnull if(c2 >= 'A' && c2 <= 'Z')
20 fd04aace 2003-11-23 devnull c2 -= 'A' - 'a';
22 fd04aace 2003-11-23 devnull if(c1 != c2)
23 fd04aace 2003-11-23 devnull return c1 - c2;
25 fd04aace 2003-11-23 devnull if(n <= 0)
26 fd04aace 2003-11-23 devnull return 0;
27 fd04aace 2003-11-23 devnull return -*s2;