aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--em-format/e-mail-formatter-attachment.c89
1 files changed, 35 insertions, 54 deletions
diff --git a/em-format/e-mail-formatter-attachment.c b/em-format/e-mail-formatter-attachment.c
index fb997c0230..50fbe844f3 100644
--- a/em-format/e-mail-formatter-attachment.c
+++ b/em-format/e-mail-formatter-attachment.c
@@ -120,7 +120,7 @@ emfe_attachment_format (EMailFormatterExtension *extension,
gchar *str, *text, *html;
gchar *button_id;
EAttachmentStore *store;
- EMailExtensionRegistry *reg;
+ EMailExtensionRegistry *registry;
GQueue *extensions;
EMailPartAttachment *empa;
CamelMimePart *mime_part;
@@ -176,23 +176,22 @@ emfe_attachment_format (EMailFormatterExtension *extension,
g_object_unref (attachment);
}
+ registry = e_mail_formatter_get_extension_registry (formatter);
+
+ extensions = e_mail_extension_registry_get_for_mime_type (
+ registry, empa->snoop_mime_type);
+ if (extensions == NULL)
+ extensions = e_mail_extension_registry_get_fallback (
+ registry, empa->snoop_mime_type);
+
/* If the attachment is requested as RAW, then call the
* handler directly and do not append any other code. */
if ((context->mode == E_MAIL_FORMATTER_MODE_RAW) ||
(context->mode == E_MAIL_FORMATTER_MODE_PRINTING)) {
- EMailExtensionRegistry *registry;
- GQueue *extensions;
- GList *iter;
-
- registry = e_mail_formatter_get_extension_registry (formatter);
+ GList *head, *link;
+ gboolean success = FALSE;
- extensions = e_mail_extension_registry_get_for_mime_type (
- registry, empa->snoop_mime_type);
if (extensions == NULL)
- extensions = e_mail_extension_registry_get_fallback (
- registry, empa->snoop_mime_type);
-
- if (!extensions)
return FALSE;
if (context->mode == E_MAIL_FORMATTER_MODE_PRINTING) {
@@ -229,33 +228,21 @@ emfe_attachment_format (EMailFormatterExtension *extension,
g_object_unref (file_info);
}
- for (iter = g_queue_peek_head_link (extensions); iter; iter = iter->next) {
-
- EMailFormatterExtension *ext;
- ext = iter->data;
- if (!ext)
- continue;
+ head = g_queue_peek_head_link (extensions);
- if (e_mail_formatter_extension_format (ext, formatter,
- context, part, stream, cancellable)) {
- return TRUE;
- }
+ for (link = head; link != NULL; link = g_list_next (link)) {
+ success = e_mail_formatter_extension_format (
+ E_MAIL_FORMATTER_EXTENSION (link->data),
+ formatter, context, part, stream, cancellable);
+ if (success)
+ break;
}
- return FALSE;
+ return success;
}
/* E_MAIL_FORMATTER_MODE_NORMAL: */
- reg = e_mail_formatter_get_extension_registry (formatter);
- extensions = e_mail_extension_registry_get_for_mime_type (
- reg, empa->snoop_mime_type);
-
- if (!extensions) {
- extensions = e_mail_extension_registry_get_fallback (
- reg, empa->snoop_mime_type);
- }
-
mime_part = e_mail_part_ref_mime_part (part);
text = e_mail_part_describe (mime_part, empa->snoop_mime_type);
flags = e_mail_formatter_get_text_format_flags (formatter);
@@ -287,13 +274,11 @@ emfe_attachment_format (EMailFormatterExtension *extension,
g_free (str);
g_free (html);
- if (extensions) {
- GList *iter;
+ if (extensions != NULL) {
CamelStream *content_stream;
- gboolean ok;
+ gboolean success = FALSE;
content_stream = camel_stream_mem_new ();
- ok = FALSE;
if (empa->attachment_view_part_id != NULL) {
EMailPart *attachment_view_part;
@@ -306,7 +291,7 @@ emfe_attachment_format (EMailFormatterExtension *extension,
g_clear_object (&attachment_view_part);
if (attachment_view_part != NULL) {
- ok = e_mail_formatter_format_as (
+ success = e_mail_formatter_format_as (
formatter, context,
attachment_view_part,
content_stream, NULL,
@@ -315,26 +300,22 @@ emfe_attachment_format (EMailFormatterExtension *extension,
}
} else {
+ GList *head, *link;
- for (iter = g_queue_peek_head_link (extensions); iter; iter = iter->next) {
-
- EMailFormatterExtension *ext;
+ head = g_queue_peek_head_link (extensions);
- ext = iter->data;
- if (!ext)
- continue;
-
- if (e_mail_formatter_extension_format (
- ext, formatter, context,
- part, content_stream,
- cancellable)) {
- ok = TRUE;
+ for (link = head; link != NULL; link = g_list_next (link)) {
+ success = e_mail_formatter_extension_format (
+ E_MAIL_FORMATTER_EXTENSION (link->data),
+ formatter, context,
+ part, content_stream,
+ cancellable);
+ if (success)
break;
- }
}
}
- if (ok) {
+ if (success) {
str = g_strdup_printf (
"<tr><td colspan=\"2\">"
"<div class=\"attachment-wrapper\" id=\"%s\">",
@@ -342,17 +323,17 @@ emfe_attachment_format (EMailFormatterExtension *extension,
camel_stream_write_string (
stream, str, cancellable, NULL);
- g_free (str);
g_seekable_seek (
G_SEEKABLE (content_stream), 0,
G_SEEK_SET, cancellable, NULL);
camel_stream_write_to_stream (
- content_stream, stream,
- cancellable, NULL);
+ content_stream, stream, cancellable, NULL);
camel_stream_write_string (
stream, "</div></td></tr>", cancellable, NULL);
+
+ g_free (str);
}
g_object_unref (content_stream);