aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--camel/ChangeLog3
-rw-r--r--camel/camel-folder.c8
2 files changed, 8 insertions, 3 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog
index 33c482a2c3..320eebc4c1 100644
--- a/camel/ChangeLog
+++ b/camel/ChangeLog
@@ -1,5 +1,8 @@
2002-09-23 Jeffrey Stedfast <fejj@ximian.com>
+ * camel-folder.c (transfer_message_to): If the original message is
+ deleted, reset the deleted flag when we're done. Fixes bug #30876.
+
* providers/imap/camel-imap-folder.c (add_message_from_data):
Decode the INTERNALDATE if we've got one.
(imap_update_summary): Instead of requesting a list of specific
diff --git a/camel/camel-folder.c b/camel/camel-folder.c
index 99b9af5bc9..4941915598 100644
--- a/camel/camel-folder.c
+++ b/camel/camel-folder.c
@@ -1281,15 +1281,17 @@ transfer_message_to (CamelFolder *source, const char *uid, CamelFolder *dest,
info = camel_message_info_new_from_header (((CamelMimePart *)msg)->headers);
/* we don't want to retain the deleted flag */
- if (info && info->flags & CAMEL_MESSAGE_DELETED)
+ if (info && info->flags & CAMEL_MESSAGE_DELETED) {
info->flags = info->flags & ~CAMEL_MESSAGE_DELETED;
+ delete_original = TRUE;
+ }
camel_folder_append_message (dest, msg, info, transferred_uid, ex);
camel_object_unref (CAMEL_OBJECT (msg));
-
+
if (delete_original && !camel_exception_is_set (ex))
camel_folder_set_message_flags (source, uid, CAMEL_MESSAGE_DELETED|CAMEL_MESSAGE_SEEN, ~0);
-
+
if (info) {
if (source->folder_flags & CAMEL_FOLDER_HAS_SUMMARY_CAPABILITY)
CF_CLASS (source)->free_message_info (source, info);