aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Williams <peterw@ximian.com>2002-08-27 03:04:23 +0800
committerPeter Williams <peterw@src.gnome.org>2002-08-27 03:04:23 +0800
commit4fd7dd89f36a9dea7ea7f775cfc7f803effbfc3e (patch)
treedb21465d66ee9eba8aa7e0ab7c43dcb2f9f7d46a
parent70e176f79dde254653ccdbd1ffad99e7d0b2abe1 (diff)
downloadgsoc2013-evolution-4fd7dd89f36a9dea7ea7f775cfc7f803effbfc3e.tar.gz
gsoc2013-evolution-4fd7dd89f36a9dea7ea7f775cfc7f803effbfc3e.tar.zst
gsoc2013-evolution-4fd7dd89f36a9dea7ea7f775cfc7f803effbfc3e.zip
Enforce the mailer policy that deleted messages are marked as seen. Fixes
2002-08-26 Peter Williams <peterw@ximian.com> * mail-ops.c (transfer_messages_transfer): Enforce the mailer policy that deleted messages are marked as seen. Fixes 29448. This could go in camel_folder_transfer_messages_to, but I don't think we necessarily want to enforce that policy for Camel in general. svn path=/trunk/; revision=17865
-rw-r--r--mail/ChangeLog7
-rw-r--r--mail/mail-ops.c14
2 files changed, 19 insertions, 2 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog
index bf9afb466b..15269754f0 100644
--- a/mail/ChangeLog
+++ b/mail/ChangeLog
@@ -1,3 +1,10 @@
+2002-08-26 Peter Williams <peterw@ximian.com>
+
+ * mail-ops.c (transfer_messages_transfer): Enforce the mailer policy
+ that deleted messages are marked as seen. Fixes 29448. This could
+ go in camel_folder_transfer_messages_to, but I don't think we
+ necessarily want to enforce that policy for Camel in general.
+
2002-08-23 Peter Williams <peterw@ximian.com>
Address most of bug #4940. Fails on the last page of the add account
diff --git a/mail/mail-ops.c b/mail/mail-ops.c
index b4d3788ed5..4bde9475a3 100644
--- a/mail/mail-ops.c
+++ b/mail/mail-ops.c
@@ -954,9 +954,19 @@ transfer_messages_transfer (struct _mail_msg *mm)
camel_folder_freeze (m->source);
camel_folder_freeze (dest);
-
+
camel_folder_transfer_messages_to (m->source, m->uids, dest, NULL, m->delete, &mm->ex);
-
+
+ /* make sure all deleted messages are marked as seen */
+
+ if (m->delete) {
+ int i;
+
+ for (i = 0; i < m->uids->len; i++)
+ camel_folder_set_message_flags (m->source, m->uids->pdata[i],
+ CAMEL_MESSAGE_SEEN, CAMEL_MESSAGE_SEEN);
+ }
+
camel_folder_thaw (m->source);
camel_folder_thaw (dest);
camel_folder_sync (dest, FALSE, NULL);