aboutsummaryrefslogtreecommitdiffstats
path: root/em-format/e-mail-formatter-quote-headers.c
diff options
context:
space:
mode:
Diffstat (limited to 'em-format/e-mail-formatter-quote-headers.c')
-rw-r--r--em-format/e-mail-formatter-quote-headers.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/em-format/e-mail-formatter-quote-headers.c b/em-format/e-mail-formatter-quote-headers.c
index 20e97fdc69..4a29d849c5 100644
--- a/em-format/e-mail-formatter-quote-headers.c
+++ b/em-format/e-mail-formatter-quote-headers.c
@@ -121,15 +121,19 @@ emfqe_format_header (EMailFormatter *formatter,
if (addrspec) {
struct _camel_header_address *addrs;
GString *html;
+ gchar *charset;
if (!(txt = camel_medium_get_header (part, name)))
return;
+ charset = e_mail_formatter_dup_charset (formatter);
+ if (!charset)
+ charset = e_mail_formatter_dup_default_charset (formatter);
+
buf = camel_header_unfold (txt);
- addrs = camel_header_address_decode (
- txt, e_mail_formatter_get_charset (formatter) ?
- e_mail_formatter_get_charset (formatter) :
- e_mail_formatter_get_default_charset (formatter));
+ addrs = camel_header_address_decode (txt, charset);
+ g_free (charset);
+
if (addrs == NULL) {
g_free (buf);
return;
@@ -189,7 +193,7 @@ emqfe_headers_format (EMailFormatterExtension *extension,
const gchar *charset;
GList *iter;
GString *buffer;
- const GQueue *default_headers;
+ GQueue *headers_queue;
if (!part)
return FALSE;
@@ -201,8 +205,8 @@ emqfe_headers_format (EMailFormatterExtension *extension,
buffer = g_string_new ("");
/* dump selected headers */
- default_headers = e_mail_formatter_get_headers (formatter);
- for (iter = default_headers->head; iter; iter = iter->next) {
+ headers_queue = e_mail_formatter_dup_headers (formatter);
+ for (iter = headers_queue->head; iter; iter = iter->next) {
struct _camel_header_raw *raw_header;
EMailFormatterHeader *h = iter->data;
guint32 flags;
@@ -222,6 +226,8 @@ emqfe_headers_format (EMailFormatterExtension *extension,
}
}
+ g_queue_free_full (headers_queue, (GDestroyNotify) e_mail_formatter_header_free);
+
g_string_append (buffer, "<br>\n");
camel_stream_write_string (stream, buffer->str, cancellable, NULL);