Index: fusl/src/string/strncasecmp.c |
diff --git a/fusl/src/string/strncasecmp.c b/fusl/src/string/strncasecmp.c |
new file mode 100644 |
index 0000000000000000000000000000000000000000..3af5300878a45c2ef78e1063736be9b4de18fd8f |
--- /dev/null |
+++ b/fusl/src/string/strncasecmp.c |
@@ -0,0 +1,18 @@ |
+#include <strings.h> |
+#include <ctype.h> |
+#include "libc.h" |
+ |
+int strncasecmp(const char *_l, const char *_r, size_t n) |
+{ |
+ const unsigned char *l=(void *)_l, *r=(void *)_r; |
+ if (!n--) return 0; |
+ for (; *l && *r && n && (*l == *r || tolower(*l) == tolower(*r)); l++, r++, n--); |
+ return tolower(*l) - tolower(*r); |
+} |
+ |
+int __strncasecmp_l(const char *l, const char *r, size_t n, locale_t loc) |
+{ |
+ return strncasecmp(l, r, n); |
+} |
+ |
+weak_alias(__strncasecmp_l, strncasecmp_l); |