From: Sergio Villar Senin Date: Tue, 5 Aug 2008 18:43:32 +0000 (+0000) Subject: * Fixes NB#87346 do not generate nested "Fw:" or "Re:" X-Git-Tag: git_migration_finished~1229 X-Git-Url: http://git.maemo.org/git/?p=modest;a=commitdiff_plain;h=4f233ba7d5d71cd8cb848fd2e88b63ce6bc6fc21 * Fixes NB#87346 do not generate nested "Fw:" or "Re:" pmo-trunk-r5267 --- diff --git a/src/modest-text-utils.c b/src/modest-text-utils.c index b5e3c00..6e89e71 100644 --- a/src/modest-text-utils.c +++ b/src/modest-text-utils.c @@ -288,21 +288,33 @@ modest_text_utils_strftime(char *s, gsize max, const char *fmt, time_t timet) gchar * modest_text_utils_derived_subject (const gchar *subject, const gchar *prefix) { - gchar *tmp; + gchar *tmp, *subject_dup, *retval; + gint prefix_len; g_return_val_if_fail (prefix, NULL); if (!subject || subject[0] == '\0') subject = _("mail_va_no_subject"); - tmp = g_strchug (g_strdup (subject)); + subject_dup = g_strdup (subject); + tmp = g_strchug (subject_dup); - if (!strncmp (tmp, prefix, strlen (prefix))) { - return tmp; - } else { - g_free (tmp); - return g_strdup_printf ("%s %s", prefix, subject); - } + /* We do not want things like "Re: Re: Re:" or "Fw: Fw:" so + delete the previous ones */ + prefix_len = strlen (prefix); + do { + if (g_str_has_prefix (tmp, prefix)) { + tmp += prefix_len; + tmp = g_strchug (tmp); + } else { + break; + } + } while (tmp); + + retval = g_strdup_printf ("%s %s", prefix, tmp); + g_free (subject_dup); + + return retval; } gchar*