diff options
-rw-r--r-- | camel/ChangeLog | 8 | ||||
-rw-r--r-- | camel/providers/imap/camel-imap-folder.c | 10 |
2 files changed, 15 insertions, 3 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog index 53d830aaa5..0bfad59565 100644 --- a/camel/ChangeLog +++ b/camel/ChangeLog @@ -1,3 +1,11 @@ +2004-03-04 Not Zed <NotZed@Ximian.com> + + ** See bug #53355. + + * providers/imap/camel-imap-folder.c (get_content): if the parent + isn't a message/rfc822 type, we don't want to get the section.TEXT + for multipart/signed, we just want to get section. + 2004-03-03 Rodrigo Moya <rodrigo@ximian.com> * providers/groupwise/camel-gw-listener.c diff --git a/camel/providers/imap/camel-imap-folder.c b/camel/providers/imap/camel-imap-folder.c index add0078001..c0f49e7194 100644 --- a/camel/providers/imap/camel-imap-folder.c +++ b/camel/providers/imap/camel-imap-folder.c @@ -1737,6 +1737,7 @@ content_info_get_part_spec (CamelMessageContentInfo *ci) static CamelDataWrapper * get_content (CamelImapFolder *imap_folder, const char *uid, CamelMimePart *part, CamelMessageContentInfo *ci, + int frommsg, CamelException *ex) { CamelDataWrapper *content = NULL; @@ -1760,7 +1761,10 @@ get_content (CamelImapFolder *imap_folder, const char *uid, camel_data_wrapper_set_mime_type_field (CAMEL_DATA_WRAPPER (body_mp), CAMEL_DATA_WRAPPER (part)->mime_type); spec = g_alloca (strlen (part_spec) + 6); - sprintf (spec, part_spec[0] ? "%s.TEXT" : "TEXT", part_spec); + if (frommsg) + sprintf (spec, part_spec[0] ? "%s.TEXT" : "TEXT", part_spec); + else + strcpy(spec, part_spec); g_free (part_spec); stream = camel_imap_folder_fetch_data (imap_folder, uid, spec, FALSE, ex); @@ -1813,7 +1817,7 @@ get_content (CamelImapFolder *imap_folder, const char *uid, return NULL; } - content = get_content (imap_folder, uid, part, ci, ex); + content = get_content (imap_folder, uid, part, ci, FALSE, ex); } if (!stream || !content) { @@ -1874,7 +1878,7 @@ get_message (CamelImapFolder *imap_folder, const char *uid, return NULL; } - content = get_content (imap_folder, uid, CAMEL_MIME_PART (msg), ci, ex); + content = get_content (imap_folder, uid, CAMEL_MIME_PART (msg), ci, TRUE, ex); if (!content) { camel_object_unref (CAMEL_OBJECT (msg)); return NULL; |