diff src/lib-storage/index/maildir/maildir-sync.c @ 4107:d29677c59dc5 HEAD

Keep \Seen flags privately only in indexes with shared mailboxes.
author Timo Sirainen <tss@iki.fi>
date Sat, 25 Mar 2006 13:09:17 +0200
parents 928229f8b3e6
children 63d6890803b3
line wrap: on
line diff
--- a/src/lib-storage/index/maildir/maildir-sync.c	Sat Mar 25 12:54:35 2006 +0200
+++ b/src/lib-storage/index/maildir/maildir-sync.c	Sat Mar 25 13:09:17 2006 +0200
@@ -895,6 +895,10 @@
 		maildir_filename_get_flags(sync_ctx->keywords_sync_ctx,
 					   filename, &flags, &keywords);
 
+		/* the private flags are kept only in indexes. don't use them
+		   at all even for newly seen mails */
+		flags &= ~mbox->private_flags_mask;
+
 		if ((uflags & MAILDIR_UIDLIST_REC_FLAG_RECENT) != 0 &&
 		    (uflags & MAILDIR_UIDLIST_REC_FLAG_NEW_DIR) != 0 &&
 		    (uflags & MAILDIR_UIDLIST_REC_FLAG_MOVED) == 0) {
@@ -1003,6 +1007,9 @@
 			continue;
 		}
 
+		/* the private flags are stored only in indexes, keep them */
+		flags |= rec->flags & mbox->private_flags_mask;
+
 		if ((rec->flags & MAIL_RECENT) != 0) {
 			index_mailbox_set_recent(&mbox->ibox, seq);
 			if (mbox->ibox.keep_recent) {