changeset 2707:bd250ef1c09a HEAD

group multiple recent flag updates together
author Timo Sirainen <tss@iki.fi>
date Fri, 08 Oct 2004 20:06:18 +0300
parents 21bb4bb2ca39
children f1e9f3ec8135
files src/lib-index/mail-index-sync.c
diffstat 1 files changed, 15 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-index/mail-index-sync.c	Fri Oct 08 19:59:45 2004 +0300
+++ b/src/lib-index/mail-index-sync.c	Fri Oct 08 20:06:18 2004 +0300
@@ -186,10 +186,23 @@
 		if (mail_index_lookup(ctx->view, seq, &rec) < 0)
 			return -1;
 
-		if ((rec->flags & MAIL_RECENT) == 0)
+		if ((rec->flags & MAIL_RECENT) == 0) {
+			if (update.uid1 != 0) {
+				mail_index_sync_sort_flags(ctx->updates_buf,
+							   &update,
+							   sizeof(update));
+				update.uid1 = 0;
+			}
 			continue;
+		}
 
-		update.uid1 = update.uid2 = rec->uid;
+		/* group updates together as much as possible */
+		if (update.uid1 == 0)
+			update.uid1 = rec->uid;
+                update.uid2 = rec->uid;
+	}
+
+	if (update.uid1 != 0) {
 		mail_index_sync_sort_flags(ctx->updates_buf,
 					   &update, sizeof(update));
 	}