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;
 	}