aboutsummaryrefslogtreecommitdiffstats
path: root/em-format/e-mail-formatter-print-headers.c
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2013-05-18 23:24:40 +0800
committerMatthew Barnes <mbarnes@redhat.com>2013-05-20 01:07:20 +0800
commitf19058ea7a002e8ebf8351c55a86d3bb17a46cbc (patch)
tree0fdbb2c62ba31e92094ef7da2956f7caedd4840d /em-format/e-mail-formatter-print-headers.c
parent5ad0b6d8f7ee9244eb328b5951b98f8945e7b3cf (diff)
downloadgsoc2013-evolution-f19058ea7a002e8ebf8351c55a86d3bb17a46cbc.tar
gsoc2013-evolution-f19058ea7a002e8ebf8351c55a86d3bb17a46cbc.tar.gz
gsoc2013-evolution-f19058ea7a002e8ebf8351c55a86d3bb17a46cbc.tar.bz2
gsoc2013-evolution-f19058ea7a002e8ebf8351c55a86d3bb17a46cbc.tar.lz
gsoc2013-evolution-f19058ea7a002e8ebf8351c55a86d3bb17a46cbc.tar.xz
gsoc2013-evolution-f19058ea7a002e8ebf8351c55a86d3bb17a46cbc.tar.zst
gsoc2013-evolution-f19058ea7a002e8ebf8351c55a86d3bb17a46cbc.zip
Add e_mail_part_ref_mime_part().
Diffstat (limited to 'em-format/e-mail-formatter-print-headers.c')
-rw-r--r--em-format/e-mail-formatter-print-headers.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/em-format/e-mail-formatter-print-headers.c b/em-format/e-mail-formatter-print-headers.c
index 6eec667463..65515508a5 100644
--- a/em-format/e-mail-formatter-print-headers.c
+++ b/em-format/e-mail-formatter-print-headers.c
@@ -61,12 +61,15 @@ emfpe_headers_format (EMailFormatterExtension *extension,
const gchar *buf;
gint attachments_count;
gchar *part_id_prefix;
+ CamelMimePart *mime_part;
GQueue *headers_queue;
GQueue queue = G_QUEUE_INIT;
GList *head, *link;
const gchar *part_id;
- buf = camel_medium_get_header (CAMEL_MEDIUM (part->part), "subject");
+ mime_part = e_mail_part_ref_mime_part (part);
+
+ buf = camel_medium_get_header (CAMEL_MEDIUM (mime_part), "subject");
subject = camel_header_decode_string (buf, "UTF-8");
str = g_string_new ("");
g_string_append_printf (str, "<h1>%s</h1>\n", subject);
@@ -90,7 +93,7 @@ emfpe_headers_format (EMailFormatterExtension *extension,
raw_header.value = header->value;
e_mail_formatter_format_header (
formatter, str,
- CAMEL_MEDIUM (part->part), &raw_header,
+ CAMEL_MEDIUM (mime_part), &raw_header,
header->flags | E_MAIL_FORMATTER_HEADER_FLAG_NOLINKS,
"UTF-8");
} else {
@@ -106,7 +109,7 @@ emfpe_headers_format (EMailFormatterExtension *extension,
if (raw_header.value && *raw_header.value) {
e_mail_formatter_format_header (
formatter, str,
- CAMEL_MEDIUM (part->part), &raw_header,
+ CAMEL_MEDIUM (mime_part), &raw_header,
header->flags | E_MAIL_FORMATTER_HEADER_FLAG_NOLINKS,
"UTF-8");
}
@@ -169,7 +172,7 @@ emfpe_headers_format (EMailFormatterExtension *extension,
raw_header.value = tmp->str;
e_mail_formatter_format_header (
formatter, str,
- CAMEL_MEDIUM (part->part), &raw_header,
+ CAMEL_MEDIUM (mime_part), &raw_header,
E_MAIL_FORMATTER_HEADER_FLAG_BOLD |
E_MAIL_FORMATTER_HEADER_FLAG_NOLINKS, "UTF-8");
}
@@ -201,7 +204,7 @@ emfpe_headers_format (EMailFormatterExtension *extension,
raw_header.value = g_strdup_printf ("%d", attachments_count);
e_mail_formatter_format_header (
formatter, str,
- CAMEL_MEDIUM (part->part), &raw_header,
+ CAMEL_MEDIUM (mime_part), &raw_header,
E_MAIL_FORMATTER_HEADER_FLAG_BOLD |
E_MAIL_FORMATTER_HEADER_FLAG_NOLINKS, "UTF-8");
g_free (raw_header.value);
@@ -216,6 +219,8 @@ emfpe_headers_format (EMailFormatterExtension *extension,
g_string_free (str, TRUE);
g_free (part_id_prefix);
+ g_object_unref (mime_part);
+
return TRUE;
}