X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fmodest-tny-mime-part.c;h=3e9a4736cdc6bd678adce94e8ead75959cac0fc6;hb=6a50cff86ae8ac2690442fe74b60334d21de33c6;hp=ff6c1cdf90909adbca32e7e6f6a1a572463e29df;hpb=a72c803f36f7617e4bbb478957f1ab3f018739d9;p=modest diff --git a/src/modest-tny-mime-part.c b/src/modest-tny-mime-part.c index ff6c1cd..3e9a473 100644 --- a/src/modest-tny-mime-part.c +++ b/src/modest-tny-mime-part.c @@ -83,10 +83,30 @@ modest_tny_mime_part_is_attachment_for_modest (TnyMimePart *part) gboolean has_content_disp_name = FALSE; g_return_val_if_fail (part && TNY_IS_MIME_PART(part), FALSE); - - /* if tinymail thinks it's an attachment, it definitely is */ - if (tny_mime_part_is_attachment (part) || tny_mime_part_is_purged (part)) + + /* purged attachments were attachments in the past, so they're + * still attachments */ + if (tny_mime_part_is_purged (part)) return TRUE; + + /* if tinymail thinks it's an attachment, it is. One exception: if it's + * a multipart and it's not a message/rfc822 it cannot be an attahcment */ + if (tny_mime_part_is_attachment (part)) { + if (!TNY_IS_MSG (part)) { + const gchar *content_type; + gchar *down_content_type; + gboolean is_attachment; + + content_type = tny_mime_part_get_content_type (part); + down_content_type = g_ascii_strdown (content_type, -1); + + is_attachment = !g_str_has_prefix (down_content_type, "multipart/"); + g_free (down_content_type); + return is_attachment; + } else { + return TRUE; + } + } /* if the mime part is a message itself (ie. embedded), it's an attachment */ if (TNY_IS_MSG (part)) @@ -142,16 +162,21 @@ gboolean modest_tny_mime_part_is_msg (TnyMimePart *part) { const gchar *content_type; + gchar *down_content_type; if (!TNY_IS_MSG (part)) return FALSE; content_type = tny_mime_part_get_content_type (part); - if ((g_str_has_prefix (content_type, "message/rfc822") || - g_str_has_prefix (content_type, "multipart/") || - g_str_has_prefix (content_type, "text/"))) { + down_content_type = g_ascii_strdown (content_type, -1); + if ((g_str_has_prefix (down_content_type, "message/rfc822") || + g_str_has_prefix (down_content_type, "multipart/") || + g_str_has_prefix (down_content_type, "text/plain") || + g_str_has_prefix (down_content_type, "text/html"))) { + g_free (down_content_type); return TRUE; } else { + g_free (down_content_type); return FALSE; } }