X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fmodest-text-utils.c;h=6e89e717135415270799cb8f2019b1183dc4db1e;hp=b5e3c0011b30613fcbd2e8dc96edf008d6ed6d2b;hb=4f233ba7d5d71cd8cb848fd2e88b63ce6bc6fc21;hpb=fa1f6dc53a74fba63e04b822e50c47f4f6ec45c8 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*