+2006-05-19 [colin] 2.2.0cvs40
+
+ * src/imap.c
+ Don't issue SELECT in imap_change_flags
+ before having checked that we indeed have
+ some flags to change. MSG_POSTFILTERED for
+ example can't be used on IMAP.
+ Fixes bug #955 (copying messages between
+ imap folders is extremely slow), which was
+ a regression.
+
2006-05-19 [colin] 2.2.0cvs39
* src/folder.c
( cvs diff -u -r 1.1.2.16 -r 1.1.2.17 manual/advanced.xml; cvs diff -u -r 1.1.2.5 -r 1.1.2.6 manual/fr/advanced.xml; cvs diff -u -r 1.1.4.16 -r 1.1.4.17 src/gtk/logwindow.c; cvs diff -u -r 1.204.2.85 -r 1.204.2.86 src/prefs_common.c; cvs diff -u -r 1.103.2.48 -r 1.103.2.49 src/prefs_common.h; ) > 2.2.0cvs37.patchset
( cvs diff -u -r 1.1.2.17 -r 1.1.2.18 manual/advanced.xml; ) > 2.2.0cvs38.patchset
( cvs diff -u -r 1.213.2.92 -r 1.213.2.93 src/folder.c; cvs diff -u -r 1.87.2.27 -r 1.87.2.28 src/folder.h; cvs diff -u -r 1.207.2.97 -r 1.207.2.98 src/folderview.c; ) > 2.2.0cvs39.patchset
+( cvs diff -u -r 1.179.2.114 -r 1.179.2.115 src/imap.c; ) > 2.2.0cvs40.patchset
if (!session) {
return;
}
- lock_session();
- if ((ok = imap_select(session, IMAP_FOLDER(folder), msginfo->folder->path,
- NULL, NULL, NULL, NULL, FALSE)) != IMAP_SUCCESS) {
- unlock_session();
- return;
- }
if (!MSG_IS_MARKED(msginfo->flags) && (newflags & MSG_MARKED))
flags_set |= IMAP_FLAG_FLAGGED;
if ( MSG_IS_DELETED(msginfo->flags) && !(newflags & MSG_DELETED))
flags_unset |= IMAP_FLAG_DELETED;
+ if (!flags_set && !flags_unset) {
+ /* the changed flags were not translatable to IMAP-speak.
+ * like MSG_POSTFILTERED */
+ return;
+ }
+
+ lock_session();
+ if ((ok = imap_select(session, IMAP_FOLDER(folder), msginfo->folder->path,
+ NULL, NULL, NULL, NULL, FALSE)) != IMAP_SUCCESS) {
+ unlock_session();
+ return;
+ }
numlist.next = NULL;
numlist.data = GINT_TO_POINTER(msginfo->msgnum);