diff options
Diffstat (limited to 'em-format/e-mail-parser-multipart-alternative.c')
-rw-r--r-- | em-format/e-mail-parser-multipart-alternative.c | 32 |
1 files changed, 15 insertions, 17 deletions
diff --git a/em-format/e-mail-parser-multipart-alternative.c b/em-format/e-mail-parser-multipart-alternative.c index 74826da814..de4261bf0c 100644 --- a/em-format/e-mail-parser-multipart-alternative.c +++ b/em-format/e-mail-parser-multipart-alternative.c @@ -65,32 +65,28 @@ related_display_part_is_attachment (CamelMimePart *part) return display_part && e_mail_part_is_attachment (display_part); } -static GSList * +static gboolean empe_mp_alternative_parse (EMailParserExtension *extension, EMailParser *parser, CamelMimePart *part, GString *part_id, - GCancellable *cancellable) + GCancellable *cancellable, + GQueue *out_mail_parts) { CamelMultipart *mp; gint i, nparts, bestid = 0; CamelMimePart *best = NULL; - GSList *parts; EMailExtensionRegistry *reg; - if (g_cancellable_is_cancelled (cancellable)) - return NULL; - reg = e_mail_parser_get_extension_registry (parser); mp = (CamelMultipart *) camel_medium_get_content ((CamelMedium *) part); - if (!CAMEL_IS_MULTIPART (mp)) { + if (!CAMEL_IS_MULTIPART (mp)) return e_mail_parser_parse_part_as ( - parser, part, part_id, - "application/vnd.evolution.source", - cancellable); - } + parser, part, part_id, + "application/vnd.evolution.source", + cancellable, out_mail_parts); /* as per rfc, find the last part we know how to display */ nparts = camel_multipart_get_number (mp); @@ -103,7 +99,7 @@ empe_mp_alternative_parse (EMailParserExtension *extension, gsize content_size; if (g_cancellable_is_cancelled (cancellable)) - return NULL; + return TRUE; /* is it correct to use the passed in *part here? */ mpart = camel_multipart_get_part (mp, i); @@ -148,16 +144,18 @@ empe_mp_alternative_parse (EMailParserExtension *extension, g_string_append_printf (part_id, ".alternative.%d", bestid); - parts = e_mail_parser_parse_part ( - parser, best, part_id, cancellable); + e_mail_parser_parse_part ( + parser, best, part_id, + cancellable, out_mail_parts); g_string_truncate (part_id, len); } else { - parts = e_mail_parser_parse_part_as ( - parser, part, part_id, "multipart/mixed", cancellable); + e_mail_parser_parse_part_as ( + parser, part, part_id, "multipart/mixed", + cancellable, out_mail_parts); } - return parts; + return TRUE; } static const gchar ** |