From 113bb17ac1b2e89c64bbcd768d5688cb776cfb3f Mon Sep 17 00:00:00 2001 From: Jeffrey Stedfast Date: Tue, 23 Oct 2001 01:48:05 +0000 Subject: New fun macro. 2001-10-22 Jeffrey Stedfast * mail-display.h (mail_html_write_string): New fun macro. * mail-format.c (write_one_text_plain_chunk): Use gtk_html_write instead of mail_html_write so we avoid strdup'ing the text. (handle_text_plain_flowed): Use the mail_html_write_string macro. (handle_message_rfc822): Here too. (mail_format_raw_message): We can do it here also... (attachment_header): We can do it a little bit here... (write_address): A microscopic bit here... (write_hr): same. svn path=/trunk/; revision=13925 --- mail/mail-display.c | 42 ++++++++++++++++++------------------------ 1 file changed, 18 insertions(+), 24 deletions(-) (limited to 'mail/mail-display.c') diff --git a/mail/mail-display.c b/mail/mail-display.c index 7e038d0b99..73c0c9a1ab 100644 --- a/mail/mail-display.c +++ b/mail/mail-display.c @@ -1145,7 +1145,6 @@ try_part_urls (struct _load_content_msg *m) { GHashTable *urls; CamelMedium *medium; - GByteArray *ba; urls = g_datalist_get_data (m->display->data, "part_urls"); g_return_val_if_fail (urls != NULL, FALSE); @@ -1154,24 +1153,19 @@ try_part_urls (struct _load_content_msg *m) medium = g_hash_table_lookup (urls, m->url); if (medium) { CamelDataWrapper *data; - CamelStream *stream_mem; - + CamelStream *html_stream; + g_return_val_if_fail (CAMEL_IS_MEDIUM (medium), FALSE); - + data = camel_medium_get_content_object (medium); if (!mail_content_loaded (data, m->display, FALSE, m->url, m->handle)) { g_warning ("This code should not be reached\n"); return TRUE; } - - ba = g_byte_array_new (); - stream_mem = camel_stream_mem_new_with_byte_array (ba); - camel_data_wrapper_write_to_stream (data, stream_mem); - /* printf ("-- begin --\n"); - printf (ba->data); - printf ("-- end --\n"); */ - gtk_html_write (m->display->html, m->handle, ba->data, ba->len); - camel_object_unref (CAMEL_OBJECT (stream_mem)); + + html_stream = mail_stream_gtkhtml_new (m->display->html, m->handle); + camel_data_wrapper_write_to_stream (data, html_stream); + camel_object_unref (CAMEL_OBJECT (html_stream)); gtk_html_end (m->display->html, m->handle, GTK_HTML_STREAM_OK); return TRUE; @@ -1301,7 +1295,7 @@ mail_html_write (GtkHTML *html, GtkHTMLStream *stream, { char *buf; va_list ap; - + va_start (ap, format); buf = g_strdup_vprintf (format, ap); va_end (ap); @@ -1316,24 +1310,24 @@ mail_text_write (GtkHTML *html, GtkHTMLStream *stream, { char *buf, *htmltext; va_list ap; - + va_start (ap, format); buf = g_strdup_vprintf (format, ap); va_end (ap); - - htmltext = e_text_to_html_full (buf, - E_TEXT_TO_HTML_CONVERT_URLS | + + htmltext = e_text_to_html_full (buf, E_TEXT_TO_HTML_CONVERT_URLS | E_TEXT_TO_HTML_CONVERT_ADDRESSES | E_TEXT_TO_HTML_CONVERT_NL | E_TEXT_TO_HTML_CONVERT_SPACES | (mail_config_get_citation_highlight () ? E_TEXT_TO_HTML_MARK_CITATION : 0), mail_config_get_citation_color ()); - + + g_free (buf); + gtk_html_write (html, stream, "", 4); gtk_html_write (html, stream, htmltext, strlen (htmltext)); gtk_html_write (html, stream, "", 5); g_free (htmltext); - g_free (buf); } void @@ -1342,18 +1336,18 @@ mail_error_write (GtkHTML *html, GtkHTMLStream *stream, { char *buf, *htmltext; va_list ap; - + va_start (ap, format); buf = g_strdup_vprintf (format, ap); va_end (ap); - + htmltext = e_text_to_html (buf, E_TEXT_TO_HTML_CONVERT_NL | E_TEXT_TO_HTML_CONVERT_URLS); g_free (buf); - + gtk_html_stream_printf (stream, ""); gtk_html_stream_write (stream, htmltext, strlen (htmltext)); gtk_html_stream_printf (stream, ""); - + g_free (htmltext); } -- cgit v1.2.3