aboutsummaryrefslogtreecommitdiffstats
path: root/camel/camel-folder.c
diff options
context:
space:
mode:
Diffstat (limited to 'camel/camel-folder.c')
-rw-r--r--camel/camel-folder.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/camel/camel-folder.c b/camel/camel-folder.c
index 454db69773..c76e7faf15 100644
--- a/camel/camel-folder.c
+++ b/camel/camel-folder.c
@@ -96,7 +96,7 @@ static void expunge (CamelFolder *folder,
static void append_message (CamelFolder *folder, CamelMimeMessage *message,
- CamelException *ex);
+ guint32 flags, CamelException *ex);
static GPtrArray *get_uids (CamelFolder *folder,
@@ -621,7 +621,7 @@ camel_folder_get_unread_message_count (CamelFolder *folder, CamelException *ex)
static void
append_message (CamelFolder *folder, CamelMimeMessage *message,
- CamelException *ex)
+ guint32 flags, CamelException *ex)
{
g_warning ("CamelFolder::append_message not implemented for `%s'",
gtk_type_name (GTK_OBJECT_TYPE (folder)));
@@ -640,11 +640,12 @@ append_message (CamelFolder *folder, CamelMimeMessage *message,
void
camel_folder_append_message (CamelFolder *folder,
CamelMimeMessage *message,
+ guint32 flags,
CamelException *ex)
{
g_return_if_fail (CAMEL_IS_FOLDER (folder));
- CF_CLASS (folder)->append_message (folder, message, ex);
+ CF_CLASS (folder)->append_message (folder, message, flags, ex);
}
@@ -1080,13 +1081,15 @@ copy_message_to (CamelFolder *source, const char *uid, CamelFolder *dest,
CamelException *ex)
{
CamelMimeMessage *msg;
+ CamelMessageInfo *info;
/* Default implementation. */
msg = camel_folder_get_message (source, uid, ex);
if (!msg)
return;
- camel_folder_append_message (dest, msg, ex);
+ info = camel_folder_get_message_info (source, uid);
+ camel_folder_append_message (dest, msg, info ? info->flags : 0, ex);
gtk_object_unref (GTK_OBJECT (msg));
if (camel_exception_is_set (ex))
return;
@@ -1124,13 +1127,15 @@ move_message_to (CamelFolder *source, const char *uid, CamelFolder *dest,
CamelException *ex)
{
CamelMimeMessage *msg;
+ CamelMessageInfo *info;
/* Default implementation. */
msg = camel_folder_get_message (source, uid, ex);
if (!msg)
return;
- camel_folder_append_message (dest, msg, ex);
+ info = camel_folder_get_message_info (source, uid);
+ camel_folder_append_message (dest, msg, info ? info->flags : 0, ex);
gtk_object_unref (GTK_OBJECT (msg));
if (camel_exception_is_set (ex))
return;