From fa272d3dc92f7507d2f78a33c295714e17287019 Mon Sep 17 00:00:00 2001 From: Jeffrey Stedfast Date: Wed, 7 Feb 2001 21:27:11 +0000 Subject: Macro for making comparisons easy. (camel_ustrcasecmp): Use 2001-02-07 Jeffrey Stedfast * camel-search-private.c (CAMEL_SEARCH_COMPARE): Macro for making comparisons easy. (camel_ustrcasecmp): Use CAMEL_SEARCH_COMPARE and check for end-of-string before the utf-8 error check. (camel_ustrncasecmp): Same. (camel_search_header_match): Strip leading spaces before doing anything else. Also use vlen and mlen so as to not need to do 500 strlen()'s. (camel_ustrcasecmp): Don't get_utf8() for the 2 strings in the comparison part of the loop because of short-circuit expression evaluation. (blame JPR if this is the wrong term!) (camel_ustrncasecmp): Same. svn path=/trunk/; revision=8057 --- camel/ChangeLog | 4 ++++ camel/camel-search-private.c | 22 ++++++++++++++++------ 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/camel/ChangeLog b/camel/ChangeLog index e2b0834e56..0dca380b40 100644 --- a/camel/ChangeLog +++ b/camel/ChangeLog @@ -8,6 +8,10 @@ (camel_search_header_match): Strip leading spaces before doing anything else. Also use vlen and mlen so as to not need to do 500 strlen()'s. + (camel_ustrcasecmp): Don't get_utf8() for the 2 strings in the + comparison part of the loop because of short-circuit expression + evaluation. (blame JPR if this is the wrong term!) + (camel_ustrncasecmp): Same. 2001-02-06 Jeffrey Stedfast diff --git a/camel/camel-search-private.c b/camel/camel-search-private.c index a9ac42a9bb..f002bc3ad4 100644 --- a/camel/camel-search-private.c +++ b/camel/camel-search-private.c @@ -307,13 +307,18 @@ camel_ustrcasecmp (const char *s1, const char *s2) CAMEL_SEARCH_COMPARE (s1, s2, NULL); - while ((u1 = utf8_get(&s1)) && (u2 = utf8_get(&s2))) { - u1 = unicode_tolower(u1); - u2 = unicode_tolower(u2); + u1 = utf8_get (&s1); + u2 = utf8_get (&s2); + while (u1 && u2) { + u1 = unicode_tolower (u1); + u2 = unicode_tolower (u2); if (u1 < u2) return -1; else if (u1 > u2) return 1; + + u1 = utf8_get (&s1); + u2 = utf8_get (&s2); } /* end of one of the strings ? */ @@ -332,14 +337,19 @@ camel_ustrncasecmp (const char *s1, const char *s2, size_t len) CAMEL_SEARCH_COMPARE (s1, s2, NULL); - while (len > 0 && (u1 = utf8_get(&s1)) && (u2 = utf8_get(&s2))) { - u1 = unicode_tolower(u1); - u2 = unicode_tolower(u2); + u1 = utf8_get (&s1); + u2 = utf8_get (&s2); + while (len > 0 && u1 && u2) { + u1 = unicode_tolower (u1); + u2 = unicode_tolower (u2); if (u1 < u2) return -1; else if (u1 > u2) return 1; + len--; + u1 = utf8_get (&s1); + u2 = utf8_get (&s2); } if (len == 0) -- cgit