aboutsummaryrefslogtreecommitdiffstats
path: root/camel/providers
diff options
context:
space:
mode:
authorDan Winship <danw@src.gnome.org>2001-04-04 06:03:18 +0800
committerDan Winship <danw@src.gnome.org>2001-04-04 06:03:18 +0800
commit14d0e2456bb4f50f4871cbaad63fd4424c9b5e05 (patch)
treef3065393095975dbf5cf5d1f739d6af70999b983 /camel/providers
parent4392191f4f48cf83d7ae44a3bfd3a51db472783a (diff)
downloadgsoc2013-evolution-14d0e2456bb4f50f4871cbaad63fd4424c9b5e05.tar
gsoc2013-evolution-14d0e2456bb4f50f4871cbaad63fd4424c9b5e05.tar.gz
gsoc2013-evolution-14d0e2456bb4f50f4871cbaad63fd4424c9b5e05.tar.bz2
gsoc2013-evolution-14d0e2456bb4f50f4871cbaad63fd4424c9b5e05.tar.lz
gsoc2013-evolution-14d0e2456bb4f50f4871cbaad63fd4424c9b5e05.tar.xz
gsoc2013-evolution-14d0e2456bb4f50f4871cbaad63fd4424c9b5e05.tar.zst
gsoc2013-evolution-14d0e2456bb4f50f4871cbaad63fd4424c9b5e05.zip
(imap_update_summary): When reading message flags, set the
server_flags field as well, and don't overwrite any flags set by camel_folder_summary_info_new_from_message. Might help with some of the flag problems... svn path=/trunk/; revision=9149
Diffstat (limited to 'camel/providers')
-rw-r--r--camel/providers/imap/camel-imap-folder.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/camel/providers/imap/camel-imap-folder.c b/camel/providers/imap/camel-imap-folder.c
index b05dcfb5e4..f30c731e0c 100644
--- a/camel/providers/imap/camel-imap-folder.c
+++ b/camel/providers/imap/camel-imap-folder.c
@@ -1103,8 +1103,15 @@ imap_update_summary (CamelFolder *folder,
if (g_datalist_get_data (&fetch_data, "UID"))
camel_message_info_set_uid (mi, g_strdup (g_datalist_get_data (&fetch_data, "UID")));
- if (g_datalist_get_data (&fetch_data, "FLAGS"))
- mi->flags = GPOINTER_TO_INT (g_datalist_get_data (&fetch_data, "FLAGS"));
+ if (g_datalist_get_data (&fetch_data, "FLAGS")) {
+ guint32 flags = GPOINTER_TO_INT (g_datalist_get_data (&fetch_data, "FLAGS"));
+
+ ((CamelImapMessageInfo *)mi)->server_flags = flags;
+ /* "or" them in with the existing flags that may
+ * have been set by summary_info_new_from_message.
+ */
+ mi->flags |= flags;
+ }
if (g_datalist_get_data (&fetch_data, "RFC822.SIZE"))
mi->size = GPOINTER_TO_INT (g_datalist_get_data (&fetch_data, "RFC822.SIZE"));