Mercurial > gnulib
changeset 20274:ee8b5acf2412
.
author | Jim Meyering <jim@meyering.net> |
---|---|
date | Wed, 10 Apr 1996 03:29:05 +0000 |
parents | eb91f98e5594 |
children | 5a678f10f17b |
files | lib/memcasecmp.c lib/memcasecmp.h |
diffstat | 2 files changed, 41 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lib/memcasecmp.c Wed Apr 10 03:29:05 1996 +0000 @@ -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; +}