.
authorJim Meyering <jim@meyering.net>
Wed, 10 Apr 1996 03:29:05 +0000 (03:29 +0000)
committerJim Meyering <jim@meyering.net>
Wed, 10 Apr 1996 03:29:05 +0000 (03:29 +0000)
lib/memcasecmp.c [new file with mode: 0644]
lib/memcasecmp.h [new file with mode: 0644]

diff --git a/lib/memcasecmp.c b/lib/memcasecmp.c
new file mode 100644 (file)
index 0000000..5479028
--- /dev/null
@@ -0,0 +1,32 @@
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <sys/types.h>
+#include <ctype.h>
+
+#if _LIBC || STDC_HEADERS
+# define TOLOWER(c) tolower (c)
+#else
+# define TOLOWER(c) (ISUPPER (c) ? tolower (c) : (c))
+#endif
+
+#include "memcasecmp.h"
+
+/* Like memcmp, but ignore differences in case.  */
+
+int
+memcasecmp (const void *vs1, const void *vs2, size_t n)
+{
+  unsigned int i;
+  unsigned char *s1 = (unsigned char *) vs1;
+  unsigned char *s2 = (unsigned char *) vs2;
+  for (i = 0; i < n; i++)
+    {
+      unsigned char u1 = *s1++;
+      unsigned char u2 = *s2++;
+      if (TOLOWER (u1) != TOLOWER (u2))
+        return TOLOWER (u1) - TOLOWER (u2);
+    }
+  return 0;
+}
diff --git a/lib/memcasecmp.h b/lib/memcasecmp.h
new file mode 100644 (file)
index 0000000..764fb8a
--- /dev/null
@@ -0,0 +1,9 @@
+#undef __P
+#if defined (__STDC__) && __STDC__
+#define __P(args) args
+#else
+#define __P(args) ()
+#endif
+
+int
+  memcasecmp __P((const void *vs1, const void *vs2, size_t n));