# HG changeset patch # User Timo Sirainen # Date 1031625924 -10800 # Node ID d85a6898bf390d8859e906308131258a6f9d5c7e # Parent 8617d7a36fd68117b481ceff6e26f842c3122aae Don't rewrite mbox if no flags were changed. diff -r 8617d7a36fd6 -r d85a6898bf39 src/lib-index/mail-index.h --- 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 { diff -r 8617d7a36fd6 -r d85a6898bf39 src/lib-index/mbox/mbox-index.c --- 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; } diff -r 8617d7a36fd6 -r d85a6898bf39 src/lib-index/mbox/mbox-rewrite.c --- 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; }