diff options
author | Dan Winship <danw@src.gnome.org> | 2001-04-04 06:03:18 +0800 |
---|---|---|
committer | Dan Winship <danw@src.gnome.org> | 2001-04-04 06:03:18 +0800 |
commit | 14d0e2456bb4f50f4871cbaad63fd4424c9b5e05 (patch) | |
tree | f3065393095975dbf5cf5d1f739d6af70999b983 /camel/providers/imap | |
parent | 4392191f4f48cf83d7ae44a3bfd3a51db472783a (diff) | |
download | gsoc2013-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/imap')
-rw-r--r-- | camel/providers/imap/camel-imap-folder.c | 11 |
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")); |