diff options
-rw-r--r-- | camel/ChangeLog | 3 | ||||
-rw-r--r-- | camel/camel-folder.c | 8 |
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); |