Use always the #define to refer to the signature separator
[modest] / src / modest-text-utils.c
index 6bba7f1..a644625 100644 (file)
@@ -63,8 +63,6 @@
  * will hang modest
  */
 #define HYPERLINKIFY_MAX_LENGTH (1024*50)
-#define SIGNATURE_MARKER "--"
-
 
 /*
  * we need these regexps to find URLs in plain text e-mails
@@ -109,8 +107,8 @@ struct _url_match_t {
 
 /* note: match MARK_AMP_URI_STR as well, because after txt->html, a '&' will look like $(MARK_AMP_URI_STR)"amp;" */
 #define MAIL_VIEWER_URL_MATCH_PATTERNS  {                              \
-       { "(feed:|)(file|rtsp|http|ftp|https|mms|mmsh|webcal|feed|rtsp|rdp|lastfm|sip)://[-a-z0-9_$.+!*(),;:@%=?/~#" MARK_AMP_URI_STR \
-                       "]+[-a-z0-9_$%" MARK_AMP_URI_STR "=?/~#]",      \
+       { "(feed:|)(file|rtsp|http|ftp|https|mms|mmsh|webcal|feed|rtsp|rdp|lastfm|sip)://[-a-z0-9_$.+!*(),;:@%=\?/~#&" MARK_AMP_URI_STR \
+                       "]+[-a-z0-9_$%&" MARK_AMP_URI_STR "=?/~#]",     \
          NULL, NULL },\
        { "www\\.[-a-z0-9_$.+!*(),;:@%=?/~#" MARK_AMP_URI_STR "]+[-a-z0-9_$%" MARK_AMP_URI_STR "=?/~#]",\
                        NULL, "http://" },                              \
@@ -216,7 +214,7 @@ modest_text_utils_cite (const gchar *text,
        if (!signature) {
                tmp_sig = g_strdup (text);
        } else {
-               tmp_sig = g_strconcat (text, "\n", SIGNATURE_MARKER, "\n", signature, NULL);
+               tmp_sig = g_strconcat (text, "\n", MODEST_TEXT_UTILS_SIGNATURE_MARKER, "\n", signature, NULL);
        }
 
        if (strcmp (content_type, "text/html") == 0) {
@@ -768,7 +766,7 @@ get_indent_level (const char *l)
        /*      if we hit the signature marker "-- ", we return -(indent + 1). This
         *      stops reformatting.
         */
-       if (strcmp (l, "-- ") == 0) {
+       if (strcmp (l, MODEST_TEXT_UTILS_SIGNATURE_MARKER) == 0) {
                return -1 - indent;
        } else {
                return indent;
@@ -966,7 +964,7 @@ modest_text_utils_quote_plain_text (const gchar *text,
        q = g_string_new ("");
 
        if (signature != NULL) {
-               q = g_string_append (q, "\n--\n");
+               g_string_append_printf (q, "\n%s\n", MODEST_TEXT_UTILS_SIGNATURE_MARKER);
                q = g_string_append (q, signature);
        }
 
@@ -1013,7 +1011,7 @@ modest_text_utils_quote_html (const gchar *text,
                GString *quoted_text;
                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, MODEST_TEXT_UTILS_SIGNATURE_MARKER);
                        quote_html_add_to_gstring (result_string, signature);
                }
                quote_html_add_to_gstring (result_string, cite);
@@ -1274,7 +1272,37 @@ modest_text_utils_get_display_address (gchar *address)
 }
 
 
+gchar *
+modest_text_utils_get_display_addresses (const gchar *recipients)
+{
+       gchar *addresses;
+       GSList *recipient_list;
+
+       addresses = NULL;
+       recipient_list = modest_text_utils_split_addresses_list (recipients);
+       if (recipient_list) {
+               GString *add_string = g_string_sized_new (strlen (recipients));
+               GSList *iter = recipient_list;
+               gboolean first = TRUE;
+
+               while (iter) {
+                       /* Strings are changed in place */
+                       modest_text_utils_get_display_address ((gchar *) iter->data);
+                       if (G_UNLIKELY (first)) {
+                               g_string_append_printf (add_string, "%s", (gchar *) iter->data);
+                               first = FALSE;
+                       } else {
+                               g_string_append_printf (add_string, ", %s", (gchar *) iter->data);
+                       }
+                       iter = g_slist_next (iter);
+               }
+               g_slist_foreach (recipient_list, (GFunc) g_free, NULL);
+               g_slist_free (recipient_list);
+               addresses = g_string_free (add_string, FALSE);
+       }
 
+       return addresses;
+}
 
 
 gchar *