From dd182e8507c92a56f8e202f7766efc6227db8233 Mon Sep 17 00:00:00 2001 From: Sergio Villar Senin Date: Tue, 29 Jul 2008 18:22:37 +0000 Subject: [PATCH] * Fixes NB#86199, added support to message/rfc822 messages as attachments pmo-trunk-r5203 --- src/modest-tny-msg.c | 6 ++++-- src/widgets/modest-gtkhtml-mime-part-view.c | 27 ++++++++++++++++++++++++--- 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/src/modest-tny-msg.c b/src/modest-tny-msg.c index 0bb700b..2732927 100644 --- a/src/modest-tny-msg.c +++ b/src/modest-tny-msg.c @@ -450,7 +450,7 @@ modest_tny_msg_find_body_part_from_mime_part (TnyMimePart *msg, gboolean want_ht g_free (header_content_type_lower); g_free (header_content_type); return NULL; - } + } g_free (header_content_type_lower); g_free (header_content_type); @@ -471,7 +471,9 @@ modest_tny_msg_find_body_part_from_mime_part (TnyMimePart *msg, gboolean want_ht content_type = g_strstrip (content_type); content_type_lower = g_ascii_strdown (content_type, -1); g_free (content_type); - is_text_part = g_str_has_prefix (content_type_lower, "text/"); + is_text_part = + g_str_has_prefix (content_type_lower, "text/") || + g_str_has_prefix (content_type_lower, "message/rfc822"); g_free (content_type_lower); /* if this part cannot be a supported body return NULL */ if (!is_text_part) { diff --git a/src/widgets/modest-gtkhtml-mime-part-view.c b/src/widgets/modest-gtkhtml-mime-part-view.c index 499e13e..62e4e06 100644 --- a/src/widgets/modest-gtkhtml-mime-part-view.c +++ b/src/widgets/modest-gtkhtml-mime-part-view.c @@ -34,6 +34,7 @@ #include #include #include +#include "modest-tny-mime-part.h" #include #include #include @@ -414,10 +415,30 @@ set_part (ModestGtkhtmlMimePartView *self, TnyMimePart *part) return; } - if (tny_mime_part_content_type_is (part, "text/html")) + if (tny_mime_part_content_type_is (part, "text/html")) { set_html_part (self, part); - else - set_text_part (self, part); + } else { + if (tny_mime_part_content_type_is (part, "message/rfc822")) { + gchar *header_content_type, *header_content_type_lower; + header_content_type = modest_tny_mime_part_get_header_value (part, "Content-Type"); + if (header_content_type) { + header_content_type = g_strstrip (header_content_type); + header_content_type_lower = g_ascii_strdown (header_content_type, -1); + + if (!g_ascii_strcasecmp (header_content_type_lower, "text/html")) + set_html_part (self, part); + else + set_text_part (self, part); + + g_free (header_content_type_lower); + g_free (header_content_type); + } else { + set_text_part (self, part); + } + } else { + set_text_part (self, part); + } + } } -- 1.7.9.5