Mercurial > dovecot > original-hg > dovecot-1.2
changeset 209:d85a6898bf39 HEAD
Don't rewrite mbox if no flags were changed.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Tue, 10 Sep 2002 05:45:24 +0300 |
parents | 8617d7a36fd6 |
children | 78df368a395b |
files | src/lib-index/mail-index.h src/lib-index/mbox/mbox-index.c src/lib-index/mbox/mbox-rewrite.c |
diffstat | 3 files changed, 7 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-index/mail-index.h Tue Sep 10 04:52:08 2002 +0300 +++ b/src/lib-index/mail-index.h Tue Sep 10 05:45:24 2002 +0300 @@ -21,7 +21,8 @@ MAIL_INDEX_FLAG_CACHE_FIELDS = 0x04, MAIL_INDEX_FLAG_COMPRESS = 0x08, MAIL_INDEX_FLAG_COMPRESS_DATA = 0x10, - MAIL_INDEX_FLAG_REBUILD_HASH = 0x20 + MAIL_INDEX_FLAG_REBUILD_HASH = 0x20, + MAIL_INDEX_FLAG_DIRTY_MESSAGES = 0x40 }; typedef enum {
--- a/src/lib-index/mbox/mbox-index.c Tue Sep 10 04:52:08 2002 +0300 +++ b/src/lib-index/mbox/mbox-index.c Tue Sep 10 05:45:24 2002 +0300 @@ -355,6 +355,7 @@ return FALSE; rec->index_flags |= INDEX_MAIL_FLAG_DIRTY; + index->header->flags |= MAIL_INDEX_FLAG_DIRTY_MESSAGES; return TRUE; }
--- a/src/lib-index/mbox/mbox-rewrite.c Tue Sep 10 04:52:08 2002 +0300 +++ b/src/lib-index/mbox/mbox-rewrite.c Tue Sep 10 05:45:24 2002 +0300 @@ -36,6 +36,8 @@ rec->index_flags &= ~INDEX_MAIL_FLAG_DIRTY; rec = index->next(index, rec); } + + index->header->flags &= ~MAIL_INDEX_FLAG_DIRTY_MESSAGES; } static int mbox_write(MailIndex *index, IOBuffer *inbuf, IOBuffer *outbuf, @@ -278,8 +280,8 @@ if (!mbox_index_fsck(index)) return FALSE; - if (index->header->messages_count == 0) { - /* no messages in mailbox, don't bother rewriting */ + if (index->header->flags & MAIL_INDEX_FLAG_DIRTY_MESSAGES) { + /* no need to rewrite */ return TRUE; }