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 | |
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
-rw-r--r-- | camel/ChangeLog | 4 | ||||
-rw-r--r-- | camel/providers/imap/camel-imap-folder.c | 11 |
2 files changed, 13 insertions, 2 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog index eab94447d8..412a851a2f 100644 --- a/camel/ChangeLog +++ b/camel/ChangeLog @@ -6,6 +6,10 @@ (imap_get_message): If the server_level < IMAP4rev1, always fetch messages all-at-once, since they don't support the [#.MIME] syntax. + (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... 2001-04-02 Dan Winship <danw@ximian.com> 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")); |