[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