changeset 6447:ed433a2a5f3d HEAD

When sorting appends, sort also keyword resets.
author Timo Sirainen <tss@iki.fi>
date Sat, 22 Sep 2007 12:31:52 +0300
parents 0a44101371a4
children bb838223bb93
files src/lib-index/mail-index-transaction.c
diffstat 1 files changed, 17 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-index/mail-index-transaction.c	Sat Sep 22 12:28:03 2007 +0300
+++ b/src/lib-index/mail-index-transaction.c	Sat Sep 22 12:31:52 2007 +0300
@@ -416,20 +416,24 @@
 	struct mail_index_transaction_keyword_update *updates;
 	unsigned int i, count;
 
-	/* fix the order in keywords */
-	if (!array_is_created(&t->keyword_updates))
-		return;
+	if (array_is_created(&t->keyword_updates)) {
+		updates = array_get_modifiable(&t->keyword_updates, &count);
+		for (i = 0; i < count; i++) {
+			if (array_is_created(&updates->add_seq)) {
+				sort_appends_seq_range(t, &updates[i].add_seq,
+						       old_to_newseq_map);
+			}
+			if (array_is_created(&updates->remove_seq)) {
+				sort_appends_seq_range(t,
+						       &updates[i].remove_seq,
+						       old_to_newseq_map);
+			}
+		}
+	}
 
-	updates = array_get_modifiable(&t->keyword_updates, &count);
-	for (i = 0; i < count; i++) {
-		if (array_is_created(&updates->add_seq)) {
-			sort_appends_seq_range(t, &updates[i].add_seq,
-					      old_to_newseq_map);
-		}
-		if (array_is_created(&updates->remove_seq)) {
-			sort_appends_seq_range(t, &updates[i].remove_seq,
-					      old_to_newseq_map);
-		}
+	if (array_is_created(&t->keyword_resets)) {
+		sort_appends_seq_range(t, &t->keyword_resets,
+				       old_to_newseq_map);
 	}
 }