chiark / gitweb /
[PATCH] klibc: version 1.0.3
[elogind.git] / klibc / klibc / strcasecmp.c
1 /*
2  * strcasecmp.c
3  */
4
5 #include <string.h>
6 #include <ctype.h>
7
8 int strcasecmp(const char *s1, const char *s2)
9 {
10   const unsigned char *c1 = s1, *c2 = s2;
11   unsigned char ch;
12   int d = 0;
13
14   while ( 1 ) {
15     /* toupper() expects an unsigned char (implicitly cast to int)
16        as input, and returns an int, which is exactly what we want. */
17     d = toupper(ch = *c1++) - toupper(*c2++);
18     if ( d || !ch )
19       break;
20   }
21
22   return d;
23 }