[evolution] Bug #692009 - text/css always formatted as attachment
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution] Bug #692009 - text/css always formatted as attachment
- Date: Mon, 21 Jan 2013 12:24:52 +0000 (UTC)
commit 43911af529c0f357f71b4bb74b8a8c30db9ed384
Author: Milan Crha <mcrha redhat com>
Date: Mon Jan 21 13:22:30 2013 +0100
Bug #692009 - text/css always formatted as attachment
mail/e-mail-request.c | 31 ++++++++++++++++++++++++++++---
1 files changed, 28 insertions(+), 3 deletions(-)
---
diff --git a/mail/e-mail-request.c b/mail/e-mail-request.c
index c3f0b85..1deff94 100644
--- a/mail/e-mail-request.c
+++ b/mail/e-mail-request.c
@@ -136,9 +136,34 @@ handle_mail_request (GSimpleAsyncResult *res,
}
if (part != NULL) {
- e_mail_formatter_format_as (
- formatter, &context, part, request->priv->output_stream,
- mime_type ? mime_type : part->mime_type, cancellable);
+ CamelContentType *content_type;
+
+ content_type = camel_mime_part_get_content_type (part->part);
+
+ if (context.mode == E_MAIL_FORMATTER_MODE_RAW && content_type &&
+ camel_content_type_is (content_type, "text", "*") &&
+ !camel_content_type_is (content_type, "text", "plain") &&
+ !camel_content_type_is (content_type, "text", "html")) {
+ CamelDataWrapper *dw;
+ CamelStream *raw_content;
+ GByteArray *ba;
+
+ dw = camel_medium_get_content (CAMEL_MEDIUM (part->part));
+ g_return_if_fail (dw);
+
+ raw_content = camel_stream_mem_new ();
+ camel_data_wrapper_decode_to_stream_sync (dw, raw_content, cancellable, NULL);
+ ba = camel_stream_mem_get_byte_array (CAMEL_STREAM_MEM (raw_content));
+
+ camel_stream_write (request->priv->output_stream, (gchar *) ba->data, ba->len, cancellable, NULL);
+
+ g_object_unref (raw_content);
+ } else {
+ e_mail_formatter_format_as (
+ formatter, &context, part, request->priv->output_stream,
+ mime_type ? mime_type : part->mime_type, cancellable);
+ }
+
e_mail_part_unref (part);
} else {
g_warning ("Failed to lookup requested part '%s' - this should not happen!", part_id);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]