From: Jose Dapena Paz Date: Tue, 16 Jun 2009 16:58:59 +0000 (+0200) Subject: Use html to text stream to convert html mime parts to text. X-Git-Tag: 3.0.17-rc18~26 X-Git-Url: http://git.maemo.org/git/?p=modest;a=commitdiff_plain;h=fd8081e39e94c248784cf66a3cc5de76f5261155 Use html to text stream to convert html mime parts to text. --- diff --git a/src/modest-formatter.c b/src/modest-formatter.c index 5392b06..6eabe57 100644 --- a/src/modest-formatter.c +++ b/src/modest-formatter.c @@ -33,6 +33,7 @@ #include #include #include +#include #include "modest-formatter.h" #include "modest-text-utils.h" #include "modest-tny-platform-factory.h" @@ -70,6 +71,7 @@ extract_text (ModestFormatter *self, TnyMimePart *body) { TnyStream *mp_stream; TnyStream *stream; + TnyStream *input_stream; GtkTextBuffer *buf; GtkTextIter start, end; gchar *text, *converted_text; @@ -81,9 +83,15 @@ extract_text (ModestFormatter *self, TnyMimePart *body) tny_stream_reset (stream); mp_stream = tny_mime_part_get_decoded_stream (body); + if (g_strcmp0 (tny_mime_part_get_content_type (body), "text/html") == 0) { + input_stream = tny_camel_html_to_text_stream_new (mp_stream); + } else { + input_stream = g_object_ref (mp_stream); + } + total = 0; - while (!tny_stream_is_eos (mp_stream)) { + while (!tny_stream_is_eos (input_stream)) { gchar buffer [128]; gint n_read; gint next_read; @@ -91,7 +99,7 @@ extract_text (ModestFormatter *self, TnyMimePart *body) next_read = MIN (128, MAX_BODY_LENGTH - total); if (next_read == 0) break; - n_read = tny_stream_read (mp_stream, buffer, next_read); + n_read = tny_stream_read (input_stream, buffer, next_read); if (n_read > 0) { gint n_write; n_write = tny_stream_write (stream, buffer, n_read); @@ -104,6 +112,8 @@ extract_text (ModestFormatter *self, TnyMimePart *body) tny_stream_reset (stream); g_object_unref (G_OBJECT(stream)); + g_object_unref (G_OBJECT (mp_stream)); + g_object_unref (G_OBJECT (input_stream)); gtk_text_buffer_get_bounds (buf, &start, &end); text = gtk_text_buffer_get_text (buf, &start, &end, FALSE); diff --git a/src/modest-tny-msg.c b/src/modest-tny-msg.c index b56ef3a..5b56469 100644 --- a/src/modest-tny-msg.c +++ b/src/modest-tny-msg.c @@ -685,7 +685,7 @@ create_reply_forward_mail (TnyMsg *msg, TnyHeader *header, const gchar *from, /* when we're reply, include the text part if we have it, or nothing otherwise. */ if (is_reply) - new_msg = modest_formatter_quote (formatter, no_text_part ? NULL: body, header, + new_msg = modest_formatter_quote (formatter, body, header, attachments); else { if (no_text_part || (html_body && (strcmp (tny_mime_part_get_content_type (html_body), "text/html")==0))) {