ref: 8a45afd47d2545b2d85aecf9ec5af90cba3905d3
dir: /sys/src/ape/lib/bsd/strncasecmp.c/
#include <string.h> typedef unsigned char uchar; int strncasecmp(char *s1, char *s2, int n) { int c1, c2; while(*s1 && n-- > 0){ c1 = *(uchar*)s1++; c2 = *(uchar*)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; }