Mercurial > hg > octave-lyh > gnulib-hg
changeset 583:3647a9e59ad1
.
author | Jim Meyering <jim@meyering.net> |
---|---|
date | Wed, 10 Apr 1996 03:29:05 +0000 |
parents | 3ec26150a8d6 |
children | d53b44e413fb |
files | lib/memcasecmp.c lib/memcasecmp.h |
diffstat | 2 files changed, 41 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/lib/memcasecmp.c @@ -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; +}