2007-05-29 [colin] 2.9.2cvs16
authorColin Leroy <colin@colino.net>
Tue, 29 May 2007 16:44:01 +0000 (16:44 +0000)
committerColin Leroy <colin@colino.net>
Tue, 29 May 2007 16:44:01 +0000 (16:44 +0000)
* src/imap.c
Fix loss of local flags when moving mails
on IMAP in high-bandwidth mode (UID FETCH)

ChangeLog
PATCHSETS
configure.ac
src/imap.c

index 764610d593984056c658a871d2941a695987ca2a..0c59642c01ee1358c2dcdfb53e0fd8d9a20bafd2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2007-05-29 [colin]     2.9.2cvs16
+
+       * src/imap.c
+               Fix loss of local flags when moving mails
+               on IMAP in high-bandwidth mode (UID FETCH)
+
 2007-05-25 [paul]      2.9.2cvs15
 
        * src/common/socket.c
index cf0078e344fd42d2d79b1bf6c62fafc0a386e292..2fc363a8144534732419d2f3fbd09009836d743f 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
 ( cvs diff -u -r 1.382.2.379 -r 1.382.2.380 src/compose.c;  cvs diff -u -r 1.1.2.17 -r 1.1.2.18 src/prefs_compose_writing.c;  cvs diff -u -r 1.1.2.17 -r 1.1.2.18 src/prefs_quote.c;  cvs diff -u -r 1.12.2.43 -r 1.12.2.44 src/prefs_template.c;  cvs diff -u -r 1.1.16.5 -r 1.1.16.6 src/prefs_template.h;  cvs diff -u -r 1.8.2.16 -r 1.8.2.17 src/quote_fmt.c;  cvs diff -u -r 1.5.12.8 -r 1.5.12.9 src/quote_fmt.h;  cvs diff -u -r 1.8.2.10 -r 1.8.2.11 src/quote_fmt_lex.l;  cvs diff -u -r 1.22.2.31 -r 1.22.2.32 src/quote_fmt_parse.y;  ) > 2.9.2cvs13.patchset
 ( cvs diff -u -r 1.179.2.173 -r 1.179.2.174 src/imap.c;  cvs diff -u -r 1.1.2.45 -r 1.1.2.46 src/imap_gtk.c;  ) > 2.9.2cvs14.patchset
 ( cvs diff -u -r 1.13.2.31 -r 1.13.2.32 src/common/socket.c;  ) > 2.9.2cvs15.patchset
+( cvs diff -u -r 1.179.2.174 -r 1.179.2.175 src/imap.c;  ) > 2.9.2cvs16.patchset
index 8578485e0440f544a692d5d1b533f9461c88302b..8a4e34515423b32ef208fc7c41baaf007c8a9030 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=9
 MICRO_VERSION=2
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=15
+EXTRA_VERSION=16
 EXTRA_RELEASE=
 EXTRA_GTK2_VERSION=
 
index ff8f9447e52213614e89684c65e9d1fc6cb1650f..4ff98238be8fd885d674dee312c8788b56b460c1 100644 (file)
@@ -4104,14 +4104,14 @@ static /*gint*/ void *imap_get_flags_thread(void *data)
        }
        for (elem = sorted_list; elem != NULL; elem = g_slist_next(elem)) {
                MsgInfo *msginfo;
-               MsgPermFlags flags;
-               gboolean wasnew, waspostfiltered;
-               
+               MsgPermFlags flags, oldflags;
+               gboolean wasnew;
+
                msginfo = (MsgInfo *) elem->data;
                flags = msginfo->flags.perm_flags;
                wasnew = (flags & MSG_NEW);
-               waspostfiltered = (flags & MSG_POSTFILTERED);
-       
+               oldflags = flags & ~(MSG_NEW|MSG_UNREAD|MSG_REPLIED|MSG_MARKED|MSG_DELETED);
+
                if (folder->account && folder->account->low_bandwidth) {
                        if (fitem->opened || fitem->processing_pending || fitem == folder->inbox) {
                                flags &= ~((reverse_seen ? 0 : MSG_UNREAD | MSG_NEW) | MSG_REPLIED | MSG_MARKED);
@@ -4158,9 +4158,9 @@ static /*gint*/ void *imap_get_flags_thread(void *data)
                                flags &= ~MSG_NEW;
                        else if (wasnew)
                                flags |= MSG_NEW;
+                       flags |= oldflags;
                }
-               if (waspostfiltered)
-                       flags |= MSG_POSTFILTERED;
+
                g_relation_insert(msgflags, msginfo, GINT_TO_POINTER(flags));
        }