aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeffrey Stedfast <fejj@ximian.com>2001-02-08 05:27:11 +0800
committerJeffrey Stedfast <fejj@src.gnome.org>2001-02-08 05:27:11 +0800
commitfa272d3dc92f7507d2f78a33c295714e17287019 (patch)
tree5685040e3b72e3fa4a99f3fa4a0b4d321bf6617d
parentde975c303ae18d449e5f25d692afdc9bfc52d1bd (diff)
downloadgsoc2013-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/ChangeLog4
-rw-r--r--camel/camel-search-private.c22
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)