[dovecot-cvs] dovecot/src/lib-storage/index/mbox mbox-sync-update.c, 1.21, 1.22 mbox-sync.c, 1.69, 1.70

cras at dovecot.org cras at dovecot.org
Mon Aug 23 10:39:41 EEST 2004


Update of /home/cvs/dovecot/src/lib-storage/index/mbox
In directory talvi:/tmp/cvs-serv6466

Modified Files:
	mbox-sync-update.c mbox-sync.c 
Log Message:
Recent flag fixes.



Index: mbox-sync-update.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-storage/index/mbox/mbox-sync-update.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -d -r1.21 -r1.22
--- mbox-sync-update.c	31 Jul 2004 00:54:48 -0000	1.21
+++ mbox-sync-update.c	23 Aug 2004 07:39:39 -0000	1.22
@@ -282,8 +282,13 @@
 	sync = buffer_get_data(syncs_buf, &size);
 	size /= sizeof(*sync);
 
+	old_flags = ctx->mail.flags;
+
+	if ((ctx->mail.flags & MBOX_NONRECENT) == 0 &&
+	    !ctx->sync_ctx->ibox->keep_recent)
+		ctx->mail.flags |= MBOX_NONRECENT;
+
 	if (size != 0) {
-		old_flags = ctx->mail.flags;
 		memcpy(old_keywords, ctx->mail.keywords, sizeof(old_keywords));
 
 		for (i = 0; i < size; i++) {
@@ -299,23 +304,18 @@
 		ctx->mail.flags = (ctx->mail.flags & ~MAIL_RECENT) |
 			(old_flags & MAIL_RECENT);
 
-		if ((old_flags & STATUS_FLAGS_MASK) !=
-		    (ctx->mail.flags & STATUS_FLAGS_MASK))
-			mbox_sync_update_status(ctx);
 		if ((old_flags & XSTATUS_FLAGS_MASK) !=
 		    (ctx->mail.flags & XSTATUS_FLAGS_MASK))
 			mbox_sync_update_xstatus(ctx);
 		if (memcmp(old_keywords, ctx->mail.keywords,
 			   INDEX_KEYWORDS_BYTE_COUNT) != 0)
 			mbox_sync_update_xkeywords(ctx);
-	} else {
-		if ((ctx->mail.flags & MBOX_NONRECENT) == 0 &&
-		    !ctx->sync_ctx->ibox->keep_recent) {
-			ctx->mail.flags |= MBOX_NONRECENT;
-			mbox_sync_update_status(ctx);
-		}
 	}
 
+	if ((old_flags & STATUS_FLAGS_MASK) !=
+	    (ctx->mail.flags & STATUS_FLAGS_MASK))
+		mbox_sync_update_status(ctx);
+
 	mbox_sync_update_x_imap_base(ctx);
 	mbox_sync_update_x_uid(ctx);
 	mbox_sync_add_missing_headers(ctx);

Index: mbox-sync.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-storage/index/mbox/mbox-sync.c,v
retrieving revision 1.69
retrieving revision 1.70
diff -u -d -r1.69 -r1.70
--- mbox-sync.c	22 Aug 2004 12:28:57 -0000	1.69
+++ mbox-sync.c	23 Aug 2004 07:39:39 -0000	1.70
@@ -143,13 +143,12 @@
 					       mail_ctx->content_length);
 	i_assert(mail_ctx->mail.body_size < OFF_T_MAX);
 
-	/* save the offset permanently with recent flag state */
+	/* save the offset permanently */
 	mail_ctx->mail.from_offset = mail_ctx->from_offset;
 	if ((mail_ctx->mail.flags & MBOX_NONRECENT) == 0 && !mail_ctx->pseudo) {
 		if (!sync_ctx->ibox->keep_recent) {
 			/* need to add 'O' flag to Status-header */
 			mail_ctx->need_rewrite = TRUE;
-			mail_ctx->mail.flags |= MBOX_NONRECENT;
 		}
 		index_mailbox_set_recent(sync_ctx->ibox,
 					 mail_ctx->seq - mail_ctx->pseudo);



More information about the dovecot-cvs mailing list