- 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;