aboutsummaryrefslogtreecommitdiffstats
path: root/mail/mail-display.c
diff options
context:
space:
mode:
authorJeffrey Stedfast <fejj@ximian.com>2001-10-23 09:48:05 +0800
committerJeffrey Stedfast <fejj@src.gnome.org>2001-10-23 09:48:05 +0800
commit113bb17ac1b2e89c64bbcd768d5688cb776cfb3f (patch)
treeeec29dd433e5eee24a5f8568d8190a79e1ede12b /mail/mail-display.c
parentd012fd43ca8746ba12919ba5b3111ba9bab352e0 (diff)
downloadgsoc2013-evolution-113bb17ac1b2e89c64bbcd768d5688cb776cfb3f.tar
gsoc2013-evolution-113bb17ac1b2e89c64bbcd768d5688cb776cfb3f.tar.gz
gsoc2013-evolution-113bb17ac1b2e89c64bbcd768d5688cb776cfb3f.tar.bz2
gsoc2013-evolution-113bb17ac1b2e89c64bbcd768d5688cb776cfb3f.tar.lz
gsoc2013-evolution-113bb17ac1b2e89c64bbcd768d5688cb776cfb3f.tar.xz
gsoc2013-evolution-113bb17ac1b2e89c64bbcd768d5688cb776cfb3f.tar.zst
gsoc2013-evolution-113bb17ac1b2e89c64bbcd768d5688cb776cfb3f.zip
New fun macro.
2001-10-22 Jeffrey Stedfast <fejj@ximian.com> * 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
Diffstat (limited to 'mail/mail-display.c')
-rw-r--r--mail/mail-display.c42
1 files changed, 18 insertions, 24 deletions
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, "<tt>", 4);
gtk_html_write (html, stream, htmltext, strlen (htmltext));
gtk_html_write (html, stream, "</tt>", 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, "<em><font color=red>");
gtk_html_stream_write (stream, htmltext, strlen (htmltext));
gtk_html_stream_printf (stream, "</font></em>");
-
+
g_free (htmltext);
}