From: Jim Meyering Date: Wed, 10 Apr 1996 03:29:05 +0000 (+0000) Subject: . X-Git-Tag: cvs-readonly~8589 X-Git-Url: http://erislabs.net/gitweb/?a=commitdiff_plain;h=821438b9a84381b4128ca5bf9a6b18d3c680feb3;p=gnulib.git . --- diff --git a/lib/memcasecmp.c b/lib/memcasecmp.c new file mode 100644 index 000000000..547902895 --- /dev/null +++ b/lib/memcasecmp.c @@ -0,0 +1,32 @@ +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include + +#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 index 000000000..764fb8a8f --- /dev/null +++ b/lib/memcasecmp.h @@ -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));