parent
5105b33aa7
commit
d3eb626ea0
3 changed files with 206 additions and 1 deletions
150
evolution-3.6.3-rhbug475117.patch
Normal file
150
evolution-3.6.3-rhbug475117.patch
Normal file
|
|
@ -0,0 +1,150 @@
|
|||
commit 9f5d682172643701e51452c4803db904cd6dbeac
|
||||
Author: Milan Crha <mcrha@redhat.com>
|
||||
Date: Wed Jan 23 20:06:47 2013 +0100
|
||||
|
||||
Bug #680537 - Reply to individual message in digest generates empty body
|
||||
|
||||
diff --git a/modules/mail/e-mail-attachment-handler.c b/modules/mail/e-mail-attachment-handler.c
|
||||
index 8bc2aad..1623cca 100644
|
||||
--- a/modules/mail/e-mail-attachment-handler.c
|
||||
+++ b/modules/mail/e-mail-attachment-handler.c
|
||||
@@ -60,40 +60,87 @@ static GtkTargetEntry target_table[] = {
|
||||
{ (gchar *) "x-uid-list", 0, 0 }
|
||||
};
|
||||
|
||||
-static void
|
||||
-mail_attachment_handler_forward (GtkAction *action,
|
||||
- EAttachmentHandler *handler)
|
||||
+static CamelMimeMessage *
|
||||
+mail_attachment_handler_get_selected_message (EAttachmentHandler *handler)
|
||||
{
|
||||
- EMailAttachmentHandlerPrivate *priv;
|
||||
- EShellSettings *shell_settings;
|
||||
EAttachment *attachment;
|
||||
EAttachmentView *view;
|
||||
CamelMimePart *mime_part;
|
||||
CamelDataWrapper *wrapper;
|
||||
- EMailForwardStyle style;
|
||||
- const gchar *property_name;
|
||||
+ CamelMimeMessage *message = NULL;
|
||||
+ CamelContentType *content_type;
|
||||
GList *selected;
|
||||
|
||||
view = e_attachment_handler_get_view (handler);
|
||||
- priv = E_MAIL_ATTACHMENT_HANDLER_GET_PRIVATE (handler);
|
||||
|
||||
selected = e_attachment_view_get_selected_attachments (view);
|
||||
- g_return_if_fail (g_list_length (selected) == 1);
|
||||
+ g_return_val_if_fail (g_list_length (selected) == 1, NULL);
|
||||
|
||||
attachment = E_ATTACHMENT (selected->data);
|
||||
mime_part = e_attachment_get_mime_part (attachment);
|
||||
wrapper = camel_medium_get_content (CAMEL_MEDIUM (mime_part));
|
||||
|
||||
+ content_type = camel_data_wrapper_get_mime_type_field (wrapper);
|
||||
+ if (content_type && camel_content_type_is (content_type, "message", "rfc822")) {
|
||||
+ CamelDataWrapper *inner;
|
||||
+ CamelContentType *inner_content_type;
|
||||
+
|
||||
+ inner = camel_medium_get_content (CAMEL_MEDIUM (wrapper));
|
||||
+ inner_content_type = camel_data_wrapper_get_mime_type_field (inner);
|
||||
+ if (!camel_content_type_is (inner_content_type, content_type->type, content_type->subtype)) {
|
||||
+ CamelStream *mem;
|
||||
+
|
||||
+ /* Create a message copy in case the inner content-type doesn't match
|
||||
+ the mime_part's content type, which can happen for multipart/digest,
|
||||
+ where it confuses the formatter on reply, which skips all rfc822 subparts.
|
||||
+ */
|
||||
+ mem = camel_stream_mem_new ();
|
||||
+ camel_data_wrapper_write_to_stream_sync (CAMEL_DATA_WRAPPER (wrapper), mem, NULL, NULL);
|
||||
+
|
||||
+ g_seekable_seek (G_SEEKABLE (mem), 0, G_SEEK_SET, NULL, NULL);
|
||||
+ message = camel_mime_message_new ();
|
||||
+ if (!camel_data_wrapper_construct_from_stream_sync (CAMEL_DATA_WRAPPER (message), mem, NULL, NULL)) {
|
||||
+ g_object_unref (message);
|
||||
+ message = NULL;
|
||||
+ }
|
||||
+
|
||||
+ g_object_unref (mem);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (!message)
|
||||
+ message = g_object_ref (wrapper);
|
||||
+
|
||||
+ g_list_foreach (selected, (GFunc) g_object_unref, NULL);
|
||||
+ g_list_free (selected);
|
||||
+
|
||||
+ return message;
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+mail_attachment_handler_forward (GtkAction *action,
|
||||
+ EAttachmentHandler *handler)
|
||||
+{
|
||||
+ EMailAttachmentHandlerPrivate *priv;
|
||||
+ EShellSettings *shell_settings;
|
||||
+ EMailForwardStyle style;
|
||||
+ CamelMimeMessage *message;
|
||||
+ const gchar *property_name;
|
||||
+
|
||||
+ priv = E_MAIL_ATTACHMENT_HANDLER_GET_PRIVATE (handler);
|
||||
+
|
||||
+ message = mail_attachment_handler_get_selected_message (handler);
|
||||
+ g_return_if_fail (message != NULL);
|
||||
+
|
||||
property_name = "mail-forward-style";
|
||||
shell_settings = e_shell_get_shell_settings (priv->shell);
|
||||
style = e_shell_settings_get_int (shell_settings, property_name);
|
||||
|
||||
em_utils_forward_message (
|
||||
priv->shell, CAMEL_SESSION (priv->session),
|
||||
- CAMEL_MIME_MESSAGE (wrapper), style, NULL, NULL);
|
||||
+ message, style, NULL, NULL);
|
||||
|
||||
- g_list_foreach (selected, (GFunc) g_object_unref, NULL);
|
||||
- g_list_free (selected);
|
||||
+ g_object_unref (message);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -102,34 +149,24 @@ mail_attachment_handler_reply (EAttachmentHandler *handler,
|
||||
{
|
||||
EMailAttachmentHandlerPrivate *priv;
|
||||
EShellSettings *shell_settings;
|
||||
- EAttachment *attachment;
|
||||
- EAttachmentView *view;
|
||||
- CamelMimePart *mime_part;
|
||||
- CamelDataWrapper *wrapper;
|
||||
EMailReplyStyle style;
|
||||
+ CamelMimeMessage *message;
|
||||
const gchar *property_name;
|
||||
- GList *selected;
|
||||
|
||||
- view = e_attachment_handler_get_view (handler);
|
||||
priv = E_MAIL_ATTACHMENT_HANDLER_GET_PRIVATE (handler);
|
||||
|
||||
- selected = e_attachment_view_get_selected_attachments (view);
|
||||
- g_return_if_fail (g_list_length (selected) == 1);
|
||||
-
|
||||
- attachment = E_ATTACHMENT (selected->data);
|
||||
- mime_part = e_attachment_get_mime_part (attachment);
|
||||
- wrapper = camel_medium_get_content (CAMEL_MEDIUM (mime_part));
|
||||
+ message = mail_attachment_handler_get_selected_message (handler);
|
||||
+ g_return_if_fail (message != NULL);
|
||||
|
||||
property_name = "mail-reply-style";
|
||||
shell_settings = e_shell_get_shell_settings (priv->shell);
|
||||
style = e_shell_settings_get_int (shell_settings, property_name);
|
||||
|
||||
em_utils_reply_to_message (
|
||||
- priv->shell, CAMEL_MIME_MESSAGE (wrapper),
|
||||
+ priv->shell, message,
|
||||
NULL, NULL, reply_type, style, NULL, NULL);
|
||||
|
||||
- g_list_foreach (selected, (GFunc) g_object_unref, NULL);
|
||||
- g_list_free (selected);
|
||||
+ g_object_unref (message);
|
||||
}
|
||||
|
||||
static void
|
||||
46
evolution-3.6.3-rhbug903469.patch
Normal file
46
evolution-3.6.3-rhbug903469.patch
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
diff --git a/em-format/e-mail-formatter.h b/em-format/e-mail-formatter.h
|
||||
index 9b4e84d..befa473 100644
|
||||
--- a/em-format/e-mail-formatter.h
|
||||
+++ b/em-format/e-mail-formatter.h
|
||||
@@ -50,6 +50,7 @@ typedef enum {
|
||||
E_MAIL_FORMATTER_MODE_NORMAL = 0,
|
||||
E_MAIL_FORMATTER_MODE_SOURCE,
|
||||
E_MAIL_FORMATTER_MODE_RAW,
|
||||
+ E_MAIL_FORMATTER_MODE_CID,
|
||||
E_MAIL_FORMATTER_MODE_PRINTING,
|
||||
E_MAIL_FORMATTER_MODE_ALL_HEADERS
|
||||
} EMailFormatterMode;
|
||||
diff --git a/mail/e-mail-display.c b/mail/e-mail-display.c
|
||||
index 9bb3238..9da76863 100644
|
||||
--- a/mail/e-mail-display.c
|
||||
+++ b/mail/e-mail-display.c
|
||||
@@ -354,7 +354,7 @@ mail_display_resource_requested (WebKitWebView *web_view,
|
||||
new_uri = e_mail_part_build_uri (
|
||||
part_list->folder, part_list->message_uid,
|
||||
"part_id", G_TYPE_STRING, uri,
|
||||
- "mode", G_TYPE_INT, E_MAIL_FORMATTER_MODE_RAW, NULL);
|
||||
+ "mode", G_TYPE_INT, E_MAIL_FORMATTER_MODE_CID, NULL);
|
||||
|
||||
webkit_network_request_set_uri (request, new_uri);
|
||||
|
||||
diff --git a/mail/e-mail-request.c b/mail/e-mail-request.c
|
||||
index 2794cee..b27b009 100644
|
||||
--- a/mail/e-mail-request.c
|
||||
+++ b/mail/e-mail-request.c
|
||||
@@ -142,15 +142,7 @@ handle_mail_request (GSimpleAsyncResult *res,
|
||||
}
|
||||
|
||||
if (part) {
|
||||
- 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") &&
|
||||
- !camel_content_type_is (content_type, "text", "calendar")) {
|
||||
+ if (context.mode == E_MAIL_FORMATTER_MODE_CID) {
|
||||
CamelDataWrapper *dw;
|
||||
CamelStream *raw_content;
|
||||
GByteArray *ba;
|
||||
|
|
@ -29,7 +29,7 @@
|
|||
|
||||
Name: evolution
|
||||
Version: 3.6.3
|
||||
Release: 1%{?dist}
|
||||
Release: 2%{?dist}
|
||||
Group: Applications/Productivity
|
||||
Summary: Mail and calendar client for GNOME
|
||||
License: GPLv2+ and GFDL
|
||||
|
|
@ -49,6 +49,9 @@ Patch01: evolution-1.4.4-ldap-x86_64-hack.patch
|
|||
# RH bug #589555
|
||||
Patch02: evolution-2.30.1-help-contents.patch
|
||||
|
||||
Patch03: evolution-3.6.3-rhbug475117.patch
|
||||
Patch04 :evolution-3.6.3-rhbug903469.patch
|
||||
|
||||
## Dependencies ###
|
||||
|
||||
Requires: gnome-icon-theme >= %{gnome_icon_theme_version}
|
||||
|
|
@ -190,6 +193,8 @@ This package contains the plugin to import Microsoft Personal Storage Table
|
|||
%setup -q -n evolution-%{version}
|
||||
%patch01 -p1 -b .ldaphack
|
||||
%patch02 -p1 -b .help-contents
|
||||
%patch03 -p1 -b .rhbug475117
|
||||
%patch04 -p1 -b .rhbug903469
|
||||
|
||||
mkdir -p krb5-fakeprefix/include
|
||||
mkdir -p krb5-fakeprefix/lib
|
||||
|
|
@ -528,6 +533,10 @@ rm -rf $RPM_BUILD_ROOT
|
|||
%endif
|
||||
|
||||
%changelog
|
||||
* Thu Jan 24 2013 Milan Crha <mcrha@redhat.com> - 3.6.3-2
|
||||
- Add patch for Red Hat bug #475117 (Reply in multipart/digest)
|
||||
- Add patch for Red Hat bug #903469 (Formatting of text/* parts)
|
||||
|
||||
* Tue Jan 22 2013 Milan Crha <mcrha@redhat.com> - 3.6.3-1
|
||||
- Update to 3.6.3
|
||||
- Remove patch for Red Hat bug #875109 (fixed upstream)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue