- /* We do not want things like "Re: Re: Re:" or "Fw: Fw:" so
- delete the previous ones */
- first_time = TRUE;
- do {
- if (g_str_has_prefix (tmp, prefix)) {
- tmp += prefix_len;
- tmp = g_strchug (tmp);
- /* Do not consider translated prefixes in the
- middle of a Re:Re:..Re: like sequence */
- if (G_UNLIKELY (first_time))
- translated_found = TRUE;
- } else if (g_str_has_prefix (tmp, untranslated_prefix)) {
- tmp += untranslated_prefix_len;
- tmp = g_strchug (tmp);
- } else {
- gchar *prefix_down, *tmp_down;
-
- /* We need this to properly check the cases of
- some clients adding FW: instead of Fw: for
- example */
- prefix_down = g_utf8_strdown (prefix, -1);
- tmp_down = g_utf8_strdown (tmp, -1);
- if (g_str_has_prefix (tmp_down, prefix_down)) {
- tmp += prefix_len;
- tmp = g_strchug (tmp);
- g_free (prefix_down);
- g_free (tmp_down);
- } else {
- g_free (prefix_down);
- g_free (tmp_down);
- break;
- }
- }
- first_time = FALSE;
- } while (tmp);
+ if (g_str_has_prefix (tmp, prefix) ||
+ g_str_has_prefix (tmp, untranslated_prefix)) {
+ found = TRUE;
+ } else {
+ gchar *prefix_down, *tmp_down, *untranslated_down;