-
/*
- * strcasecmp.c -- compare strings, ignoring case
- *
- * $Id$
- */
+** strcasecmp.c -- compare strings, ignoring case
+**
+** This code is Copyright (c) 2002, by the authors of nmh. See the
+** COPYRIGHT file in the root directory of the nmh distribution for
+** complete copyright information.
+*/
#include <h/mh.h>
+#include <ctype.h>
/*
- * Our version of strcasecmp has to deal with NULL strings.
- * Once that is fixed in the rest of the code, we can use the
- * native version, instead of this one.
- */
-
-int
-strcasecmp (const char *s1, const char *s2)
-{
- const unsigned char *us1, *us2;
-
- us1 = (const unsigned char *) s1,
- us2 = (const unsigned char *) s2;
-
- if (!us1)
- us1 = "";
- if (!us2)
- us2 = "";
-
- while (tolower(*us1) == tolower(*us2++))
- if (*us1++ == '\0')
- return (0);
- return (tolower(*us1) - tolower(*--us2));
-}
-
+** Our version of strcasecmp has to deal with NULL strings.
+** Once that is fixed in the rest of the code, we can use the
+** native version, instead of this one.
+*/
int
-strncasecmp (const char *s1, const char *s2, size_t n)
+mh_strcasecmp(const char *s1, const char *s2)
{
- const unsigned char *us1, *us2;
+ const unsigned char *us1, *us2;
- if (n != 0) {
us1 = (const unsigned char *) s1,
us2 = (const unsigned char *) s2;
- do {
- if (tolower(*us1) != tolower(*us2++))
- return (tolower(*us1) - tolower(*--us2));
- if (*us1++ == '\0')
- break;
- } while (--n != 0);
- }
- return (0);
+ if (!us1)
+ us1 = "";
+ if (!us2)
+ us2 = "";
+
+ while (tolower(*us1) == tolower(*us2++))
+ if (*us1++ == '\0')
+ return (0);
+ return (tolower(*us1) - tolower(*--us2));
}