aboutsummaryrefslogtreecommitdiffstats
path: root/mail/em-utils.c
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2014-02-25 23:23:11 +0800
committerMatthew Barnes <mbarnes@redhat.com>2014-03-01 03:38:11 +0800
commitf4bb7d7748f3c407858e9c844d365411c586d861 (patch)
tree5946af137b2439857433fd9729ba758e9cd3c05d /mail/em-utils.c
parentc3f8c95322ca7e461444820c7469d5527c239b05 (diff)
downloadgsoc2013-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.c25
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;
}
/* ********************************************************************** */