#include "features.h" // for __weak #include // for tolower #include // for __unused #include // for locale_t #include // for size_t int strncasecmp(const char *s1, const char *s2, size_t n) { unsigned char c1, c2; if (n == 0) return 0; while (n-- > 0 && *s1 && *s2) { c1 = (unsigned char)tolower((unsigned char)*s1); c2 = (unsigned char)tolower((unsigned char)*s2); if (c1 != c2) return c1 - c2; s1++; s2++; } if (n == (size_t)-1) return 0; return (unsigned char)tolower((unsigned char)*s1) - (unsigned char)tolower((unsigned char)*s2); } __weak int strncasecmp_l(const char *s1, const char *s2, size_t n, locale_t __unused locale) { return strncasecmp(s1, s2, n); }