diff options
author | Jeffrey Stedfast <fejj@ximian.com> | 2001-02-08 05:27:11 +0800 |
---|---|---|
committer | Jeffrey Stedfast <fejj@src.gnome.org> | 2001-02-08 05:27:11 +0800 |
commit | fa272d3dc92f7507d2f78a33c295714e17287019 (patch) | |
tree | 5685040e3b72e3fa4a99f3fa4a0b4d321bf6617d | |
parent | de975c303ae18d449e5f25d692afdc9bfc52d1bd (diff) | |
download | gsoc2013-evolution-fa272d3dc92f7507d2f78a33c295714e17287019.tar.gz gsoc2013-evolution-fa272d3dc92f7507d2f78a33c295714e17287019.tar.zst gsoc2013-evolution-fa272d3dc92f7507d2f78a33c295714e17287019.zip |
Macro for making comparisons easy. (camel_ustrcasecmp): Use
2001-02-07 Jeffrey Stedfast <fejj@ximian.com>
* 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
-rw-r--r-- | camel/ChangeLog | 4 | ||||
-rw-r--r-- | 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 <fejj@ximian.com> 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) |