diff options
Diffstat (limited to 'strcasecmp.c')
-rw-r--r-- | strcasecmp.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/strcasecmp.c b/strcasecmp.c index c1f3bbd8..76ab9be3 100644 --- a/strcasecmp.c +++ b/strcasecmp.c @@ -6,18 +6,18 @@ */ #include <ctype.h> -strcasecmp(char *s1, char *s2) +int strcasecmp(char *s1, char *s2) { - while (toupper(*s1) == toupper(*s2++)) + while (toupper((unsigned char)*s1) == toupper((unsigned char)*s2++)) if (*s1++ == '\0') - return(0); - return(toupper(*s1) - toupper(*--s2)); + return 0; + return(toupper((unsigned char)*s1) - toupper((unsigned char)*--s2)); } -strncasecmp(char *s1, char *s2, register int n) +int strncasecmp(char *s1, char *s2, register int n) { - while (--n >= 0 && toupper(*s1) == toupper(*s2++)) - if (toupper(*s1++) == '\0') - return(0); - return(n < 0 ? 0 : toupper(*s1) - toupper(*--s2)); + while (--n >= 0 && toupper((unsigned char)*s1) == toupper((unsigned char)*s2++)) + if (*s1++ == '\0') + return 0; + return(n < 0 ? 0 : toupper((unsigned char)*s1) - toupper((unsigned char)*--s2)); } |