* Fixes NB#91689. fixes a wrong check for ASCII
authorSergio Villar Senin <svillar@igalia.com>
Fri, 7 Nov 2008 18:32:22 +0000 (18:32 +0000)
committerSergio Villar Senin <svillar@igalia.com>
Fri, 7 Nov 2008 18:32:22 +0000 (18:32 +0000)
pmo-trunk-r6244

src/modest-text-utils.c

index 85df268..62bd6bb 100644 (file)
@@ -1304,7 +1304,8 @@ modest_text_utils_utf8_strcmp (const gchar* s1, const gchar *s2, gboolean insens
        if (!insensitive) {
 
                /* optimization: shortcut if first char is ascii */ 
        if (!insensitive) {
 
                /* optimization: shortcut if first char is ascii */ 
-               if (((s1[0] & 0xf0)== 0) && ((s2[0] & 0xf0) == 0)) 
+               if (((s1[0] & 0x80)== 0) && ((s2[0] & 0x80) == 0) &&
+                   (s1[0] != s2[0])) 
                        return s1[0] - s2[0];
                
                return g_utf8_collate (s1, s2);
                        return s1[0] - s2[0];
                
                return g_utf8_collate (s1, s2);
@@ -1313,8 +1314,9 @@ modest_text_utils_utf8_strcmp (const gchar* s1, const gchar *s2, gboolean insens
                gint result;
                gchar *n1, *n2;
 
                gint result;
                gchar *n1, *n2;
 
-               /* optimization: short cut iif first char is ascii */ 
-               if (((s1[0] & 0xf0) == 0) && ((s2[0] & 0xf0) == 0)) 
+               /* optimization: shortcut if first char is ascii */ 
+               if (((s1[0] & 0x80) == 0) && ((s2[0] & 0x80) == 0) &&
+                   (s1[0] != s2[0])) 
                        return tolower(s1[0]) - tolower(s2[0]);
                
                n1 = g_utf8_strdown (s1, -1);
                        return tolower(s1[0]) - tolower(s2[0]);
                
                n1 = g_utf8_strdown (s1, -1);