syslinux-3.08-2 sources from FC4
[bootcd.git] / syslinux / com32 / lib / 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 = (const unsigned char *)s1;
11   const unsigned char *c2 = (const unsigned char *)s2;
12   unsigned char ch;
13   int d = 0;
14
15   while ( 1 ) {
16     /* toupper() expects an unsigned char (implicitly cast to int)
17        as input, and returns an int, which is exactly what we want. */
18     d = toupper(ch = *c1++) - toupper(*c2++);
19     if ( d || !ch )
20       break;
21   }
22
23   return d;
24 }