From 858547ceb58eda36f8260553f72b5c7486ab3081 Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Sun, 12 Jul 2009 13:03:36 +0000 Subject: Make locale-agnostic svn path=/trunk/hubbub/; revision=8474 --- src/utils/string.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'src/utils') diff --git a/src/utils/string.c b/src/utils/string.c index e216a55..ce4f6a6 100644 --- a/src/utils/string.c +++ b/src/utils/string.c @@ -26,7 +26,7 @@ bool hubbub_string_match(const uint8_t *a, size_t a_len, if (a_len != b_len) return false; - return strncmp((const char *) a, (const char *) b, b_len) == 0; + return memcmp((const char *) a, (const char *) b, b_len) == 0; } /** @@ -43,5 +43,16 @@ bool hubbub_string_match_ci(const uint8_t *a, size_t a_len, if (a_len != b_len) return false; - return strncasecmp((const char *) a, (const char *) b, b_len) == 0; + while (b_len-- > 0) { + uint8_t aa = *(a++); + uint8_t bb = *(b++); + + aa = ('a' <= aa && aa <= 'z') ? (aa - 0x20) : aa; + bb = ('a' <= bb && bb <= 'z') ? (bb - 0x20) : bb; + + if (aa != bb) + return false; + } + + return true; } -- cgit v1.2.3