79fc5a85a0d14af67c03e462f6a6098c5f23c62f
[mmh] / sbr / strcasecmp.c
1 /*
2  * strcasecmp.c -- compare strings, ignoring case
3  *
4  * This code is Copyright (c) 2002, by the authors of nmh.  See the
5  * COPYRIGHT file in the root directory of the nmh distribution for
6  * complete copyright information.
7  */
8
9 #include <h/mh.h>
10
11 /*
12  * Our version of strcasecmp has to deal with NULL strings.
13  * Once that is fixed in the rest of the code, we can use the
14  * native version, instead of this one.
15  */
16
17 int
18 mh_strcasecmp (const char *s1, const char *s2)
19 {
20         const unsigned char *us1, *us2;
21
22         us1 = (const unsigned char *) s1,
23         us2 = (const unsigned char *) s2;
24
25         if (!us1)
26                 us1 = "";
27         if (!us2)
28                 us2 = "";
29
30         while (tolower(*us1) == tolower(*us2++))
31                 if (*us1++ == '\0')
32                         return (0);
33         return (tolower(*us1) - tolower(*--us2));
34 }