diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2014-02-25 23:23:11 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2014-03-01 03:38:11 +0800 |
commit | f4bb7d7748f3c407858e9c844d365411c586d861 (patch) | |
tree | 5946af137b2439857433fd9729ba758e9cd3c05d /mail/em-utils.c | |
parent | c3f8c95322ca7e461444820c7469d5527c239b05 (diff) | |
download | gsoc2013-evolution-f4bb7d7748f3c407858e9c844d365411c586d861.tar gsoc2013-evolution-f4bb7d7748f3c407858e9c844d365411c586d861.tar.gz gsoc2013-evolution-f4bb7d7748f3c407858e9c844d365411c586d861.tar.bz2 gsoc2013-evolution-f4bb7d7748f3c407858e9c844d365411c586d861.tar.lz gsoc2013-evolution-f4bb7d7748f3c407858e9c844d365411c586d861.tar.xz gsoc2013-evolution-f4bb7d7748f3c407858e9c844d365411c586d861.tar.zst gsoc2013-evolution-f4bb7d7748f3c407858e9c844d365411c586d861.zip |
EMailFormatter: Use GOutputStream instead of CamelStream.
Diffstat (limited to 'mail/em-utils.c')
-rw-r--r-- | mail/em-utils.c | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/mail/em-utils.c b/mail/em-utils.c index 5a938ab41b..2291e0869b 100644 --- a/mail/em-utils.c +++ b/mail/em-utils.c @@ -1196,23 +1196,21 @@ em_utils_message_to_html (CamelSession *session, { EMailFormatter *formatter; EMailParser *parser = NULL; - CamelStream *mem; - GByteArray *buf; + GOutputStream *stream; EShell *shell; GtkWindow *window; EMailPart *hidden_text_html_part = NULL; EMailPartValidityFlags is_validity_found = 0; GQueue queue = G_QUEUE_INIT; GList *head, *link; + gchar *data; shell = e_shell_get_default (); window = e_shell_get_active_window (shell); g_return_val_if_fail (CAMEL_IS_SESSION (session), NULL); - buf = g_byte_array_new (); - mem = camel_stream_mem_new (); - camel_stream_mem_set_byte_array (CAMEL_STREAM_MEM (mem), buf); + stream = g_memory_output_stream_new_resizable (); formatter = e_mail_formatter_quote_new (credits, flags); e_mail_formatter_update_style (formatter, @@ -1268,7 +1266,7 @@ em_utils_message_to_html (CamelSession *session, *validity_found = is_validity_found; e_mail_formatter_format_sync ( - formatter, parts_list, mem, 0, + formatter, parts_list, stream, 0, E_MAIL_FORMATTER_MODE_PRINTING, NULL); g_object_unref (formatter); @@ -1280,12 +1278,19 @@ em_utils_message_to_html (CamelSession *session, g_object_unref (parser); if (append != NULL && *append != '\0') - camel_stream_write_string (mem, append, NULL, NULL); + g_output_stream_write_all ( + stream, append, strlen (append), NULL, NULL, NULL); - camel_stream_write (mem, "", 1, NULL, NULL); - g_object_unref (mem); + g_output_stream_write (stream, "", 1, NULL, NULL); - return (gchar *) g_byte_array_free (buf, FALSE); + g_output_stream_close (stream, NULL, NULL); + + data = g_memory_output_stream_steal_data ( + G_MEMORY_OUTPUT_STREAM (stream)); + + g_object_unref (stream); + + return data; } /* ********************************************************************** */ |