From df89feecc27df8393a501fa147e1936d33ed7892 Mon Sep 17 00:00:00 2001 From: Andrew Sidwell Date: Fri, 11 Jul 2008 15:37:33 +0000 Subject: Commit hubbub_string_match_ci(). svn path=/trunk/hubbub/; revision=4604 --- src/utils/string.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'src/utils/string.c') diff --git a/src/utils/string.c b/src/utils/string.c index ea588f7..5a2a0bc 100644 --- a/src/utils/string.c +++ b/src/utils/string.c @@ -60,3 +60,28 @@ bool hubbub_string_match(const uint8_t *a, size_t a_len, return true; } +/** + * Check that one string is case-insensitively equal to another + * + * \param a String to compare + * \param a_len Length of first string + * \param b String to compare + * \param b_len Length of second string + */ +bool hubbub_string_match_ci(const uint8_t *a, size_t a_len, + const uint8_t *b, size_t b_len) +{ + uint8_t z1, z2; + + if (a_len != b_len) + return false; + + for (const uint8_t *s1 = a, *s2 = b; b_len > 0; s1++, s2++, b_len--) + { + z1 = (*s1 & ~0x20); + z2 = (*s2 & ~0x20); + if (z1 != z2) return false; + } + + return true; +} -- cgit v1.2.3