From 09d1a191ee08f27fb7b2103142dc2b8578875411 Mon Sep 17 00:00:00 2001 From: Not Zed Date: Wed, 17 Mar 2004 10:37:13 +0000 Subject: format as plain text too. 2004-03-17 Not Zed * em-format-html.c (efh_message_deliverystatus): format as plain text too. * em-format.c (emf_message_deliverystatus): format delivery status messages as plain text, rather than as messages. since they wont be CamelMimeMessages. Maybe they should be silently hidden. svn path=/trunk/; revision=25098 --- mail/em-format-html.c | 31 +++++++++++++++++++++++++++++++ mail/em-format.c | 7 +++++++ 2 files changed, 38 insertions(+) diff --git a/mail/em-format-html.c b/mail/em-format-html.c index 87440664b3..c912cf8020 100644 --- a/mail/em-format-html.c +++ b/mail/em-format-html.c @@ -887,6 +887,36 @@ fail: camel_stream_printf(stream, _("Pointer to unknown external data (\"%s\" type)"), access_type); } +static void +efh_message_deliverystatus(EMFormatHTML *efh, CamelStream *stream, CamelMimePart *part, EMFormatHandler *info) +{ + CamelStreamFilter *filtered_stream; + CamelMimeFilter *html_filter; + guint32 rgb = 0x737373; + + /* Yuck, this is copied from efh_text_plain */ + camel_stream_printf (stream, + "
\n" + "
\n" + "\n", + efh->frame_colour & 0xffffff, efh->content_colour & 0xffffff); + + filtered_stream = camel_stream_filter_new_with_stream(stream); + html_filter = camel_mime_filter_tohtml_new(efh->text_html_flags, rgb); + camel_stream_filter_add(filtered_stream, html_filter); + camel_object_unref(html_filter); + + camel_stream_write_string(stream, "\n"); + em_format_format_text((EMFormat *)efh, (CamelStream *)filtered_stream, camel_medium_get_content_object((CamelMedium *)part)); + camel_stream_flush((CamelStream *)filtered_stream); + camel_stream_write_string(stream, "\n"); + + camel_stream_write_string(stream, + "
\n" + "
\n" + "
\n"); +} + static void emfh_write_related(EMFormat *emf, CamelStream *stream, EMFormatPURI *puri) { @@ -1060,6 +1090,7 @@ static EMFormatHandler type_builtin_table[] = { { "text/richtext", (EMFormatFunc)efh_text_enriched }, { "text/*", (EMFormatFunc)efh_text_plain }, { "message/external-body", (EMFormatFunc)efh_message_external }, + { "message/delivery-status", (EMFormatFunc)efh_message_deliverystatus }, { "multipart/related", (EMFormatFunc)efh_multipart_related }, /* This is where one adds those busted, non-registered types, diff --git a/mail/em-format.c b/mail/em-format.c index cbccba6fc8..5eaa4328b9 100644 --- a/mail/em-format.c +++ b/mail/em-format.c @@ -1378,6 +1378,12 @@ emf_message_rfc822(EMFormat *emf, CamelStream *stream, CamelMimePart *part, cons g_string_truncate(emf->part_id, len); } +static void +emf_message_deliverystatus(EMFormat *emf, CamelStream *stream, CamelMimePart *part, const EMFormatHandler *info) +{ + em_format_format_text(emf, stream, camel_medium_get_content_object((CamelMedium *)part)); +} + static EMFormatHandler type_builtin_table[] = { #ifdef ENABLE_SMIME { "application/x-pkcs7-mime", (EMFormatFunc)emf_application_xpkcs7mime, EM_FORMAT_HANDLER_INLINE_DISPOSITION }, @@ -1391,6 +1397,7 @@ static EMFormatHandler type_builtin_table[] = { { "multipart/*", emf_multipart_mixed }, { "message/rfc822", emf_message_rfc822, EM_FORMAT_HANDLER_INLINE }, { "message/news", emf_message_rfc822, EM_FORMAT_HANDLER_INLINE }, + { "message/delivery-status", emf_message_deliverystatus }, { "message/*", emf_message_rfc822, EM_FORMAT_HANDLER_INLINE }, /* Insert brokenly-named parts here */ -- cgit v1.2.3