/* * This file is part of the UCB release of Plan 9. It is subject to the license * terms in the LICENSE file found in the top-level directory of this * distribution and at http://akaros.cs.berkeley.edu/files/Plan9License. No * part of the UCB release of Plan 9, including this file, may be copied, * modified, propagated, or distributed except according to the terms contained * in the LICENSE file. */ #include #include int jehanne_cistrncmp(const char *s1, const char *s2, int n) { int c1, c2; while(*s1 && n-- > 0){ c1 = *(uint8_t*)s1++; c2 = *(uint8_t*)s2++; if(c1 == c2) continue; if(c1 >= 'A' && c1 <= 'Z') c1 -= 'A' - 'a'; if(c2 >= 'A' && c2 <= 'Z') c2 -= 'A' - 'a'; if(c1 != c2) return c1 - c2; } if(n <= 0) return 0; return -*s2; }