* Fixes NB#91689. fixes a wrong check for ASCII
[modest] / src / modest-text-utils.c
index 54d7679..62bd6bb 100644 (file)
@@ -215,11 +215,11 @@ modest_text_utils_cite (const gchar *text,
        if (!signature)
                retval = g_strdup ("");
        else if (strcmp(content_type, "text/html") == 0) {
-               tmp_sig = g_strconcat (SIGNATURE_MARKER,"\n", signature, NULL);
+               tmp_sig = g_strconcat ("\n", SIGNATURE_MARKER,"\n", signature, NULL);
                retval = modest_text_utils_convert_to_html_body(tmp_sig, -1, TRUE);
                g_free (tmp_sig);
        } else {
-               retval = g_strconcat (text, SIGNATURE_MARKER, "\n", signature, NULL);
+               retval = g_strconcat (text, "\n", SIGNATURE_MARKER, "\n", signature, NULL);
        }
 
        return retval;
@@ -881,7 +881,14 @@ modest_text_utils_quote_plain_text (const gchar *text,
        gsize len;
        gchar *attachments_string = NULL;
 
-       q = g_string_new ("\n");
+       q = g_string_new ("");
+
+       if (signature != NULL) {
+               q = g_string_append (q, "\n--\n");
+               q = g_string_append (q, signature);
+       }
+
+       q = g_string_append (q, "\n");
        q = g_string_append (q, cite);
        q = g_string_append_c (q, '\n');
 
@@ -932,12 +939,6 @@ modest_text_utils_quote_plain_text (const gchar *text,
        q = g_string_append (q, attachments_string);
        g_free (attachments_string);
 
-       if (signature != NULL) {
-               q = g_string_append (q, "\n--\n");
-               q = g_string_append (q, signature);
-               q = g_string_append_c (q, '\n');
-       }
-
        return g_string_free (q, FALSE);
 }
 
@@ -965,10 +966,14 @@ modest_text_utils_quote_html (const gchar *text,
                g_string_new ( \
                              "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n" \
                              "<html>\n"                                \
-                             "<body>\n");
+                             "<body>\n<br/>\n");
 
        if (text || cite || signature) {
-               g_string_append (result_string, "<pre>");
+               g_string_append (result_string, "<pre>\n");
+               if (signature) {
+                       quote_html_add_to_gstring (result_string, SIGNATURE_MARKER);
+                       quote_html_add_to_gstring (result_string, signature);
+               }
                quote_html_add_to_gstring (result_string, cite);
                quote_html_add_to_gstring (result_string, text);
                if (attachments) {
@@ -976,10 +981,6 @@ modest_text_utils_quote_html (const gchar *text,
                        quote_html_add_to_gstring (result_string, attachments_string);
                        g_free (attachments_string);
                }
-               if (signature) {
-                       quote_html_add_to_gstring (result_string, SIGNATURE_MARKER);
-                       quote_html_add_to_gstring (result_string, signature);
-               }
                g_string_append (result_string, "</pre>");
        }
        g_string_append (result_string, "</body>");
@@ -1268,7 +1269,7 @@ modest_text_utils_get_subject_prefix_len (const gchar *sub)
                int c = prefix_len + 1;
                while (sub[c] && sub[c] != ']')
                        ++c;
-               if (sub[c])
+               if (!sub[c])
                        return 0; /* no end to the ']' found */
                else
                        prefix_len = c + 1;
@@ -1303,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 (((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);
@@ -1312,8 +1314,9 @@ modest_text_utils_utf8_strcmp (const gchar* s1, const gchar *s2, gboolean insens
                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);
@@ -1391,8 +1394,8 @@ modest_text_utils_validate_folder_name (const gchar *folder_name)
 
        /* Cannot contain Windows port numbers. I'd like to use GRegex
           but it's still not available in Maemo. sergio */
-       if (g_ascii_strncasecmp (folder_name, "LPT", 3) ||
-           g_ascii_strncasecmp (folder_name, "COM", 3)) {
+       if (!g_ascii_strncasecmp (folder_name, "LPT", 3) ||
+           !g_ascii_strncasecmp (folder_name, "COM", 3)) {
                glong val;
                gchar *endptr;