summaryrefslogtreecommitdiff
path: root/src/string/strcasecmp.c
diff options
context:
space:
mode:
authorVladimir Azarov <avm@intermediate-node.net>2024-10-01 15:47:05 +0200
committerVladimir Azarov <avm@intermediate-node.net>2024-10-01 15:47:05 +0200
commit4abab5ad6c8465a7528ccdd5f49367da05f78bbd (patch)
treeebf009bf1376a5a223a915bc27cbbd791a1316bc /src/string/strcasecmp.c
Initial version
Diffstat (limited to 'src/string/strcasecmp.c')
-rw-r--r--src/string/strcasecmp.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/string/strcasecmp.c b/src/string/strcasecmp.c
new file mode 100644
index 0000000..002c6aa
--- /dev/null
+++ b/src/string/strcasecmp.c
@@ -0,0 +1,16 @@
+#include <strings.h>
+#include <ctype.h>
+
+int strcasecmp(const char *_l, const char *_r)
+{
+ const unsigned char *l=(void *)_l, *r=(void *)_r;
+ for (; *l && *r && (*l == *r || tolower(*l) == tolower(*r)); l++, r++);
+ return tolower(*l) - tolower(*r);
+}
+
+int __strcasecmp_l(const char *l, const char *r, locale_t loc)
+{
+ return strcasecmp(l, r);
+}
+
+weak_alias(__strcasecmp_l, strcasecmp_l);