diff options
Diffstat (limited to 'http.c')
| -rw-r--r-- | http.c | 26 |
1 files changed, 26 insertions, 0 deletions
@@ -2975,6 +2975,32 @@ end: return ret; } +int http_strcasecmp(const char *s1, const char *s2) +{ + int ret = -1; + const locale_t l = newlocale(LC_CTYPE_MASK, "POSIX", (locale_t)0); + + if (l == (locale_t)0) + { + fprintf(stderr, "%s: newlocale(3): %s\n", __func__, strerror(errno)); + goto end; + } + + while (*s1 && *s2) + if (tolower_l(*s1++, l) != tolower_l(*s2++, l)) + { + ret = 1; + goto end; + } + + ret = !!*s1 || !!*s2; +end: + if (l != (locale_t)0) + freelocale(l); + + return ret; +} + int http_strncasecmp(const char *s1, const char *s2, const size_t n) { int ret = -1; |
