changeset 6457:3645048f6f6e HEAD

Searching NOT sequence set with multiple search ranges containing either first or last sequence caused some messages to be skipped.
author Timo Sirainen <tss@iki.fi>
date Sat, 22 Sep 2007 14:28:01 +0300
parents ac87cdd44305
children cca479cb3ef0
files src/lib-storage/index/index-search.c
diffstat 1 files changed, 8 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-storage/index/index-search.c	Sat Sep 22 14:13:42 2007 +0300
+++ b/src/lib-storage/index/index-search.c	Sat Sep 22 14:28:01 2007 +0300
@@ -627,13 +627,16 @@
 			min_seq = set->seq1;
 		if (set->seq2 > max_seq)
 			max_seq = set->seq2;
+		if (not)
+			update_seqs(set, hdr, seq1_r, seq2_r, TRUE);
 	}
 
-	full_set.seq1 = min_seq;
-	full_set.seq2 = max_seq;
-	full_set.next = NULL;
-	update_seqs(&full_set, hdr, seq1_r, seq2_r, not);
-	return;
+	if (!not) {
+		full_set.seq1 = min_seq;
+		full_set.seq2 = max_seq;
+		full_set.next = NULL;
+		update_seqs(&full_set, hdr, seq1_r, seq2_r, not);
+	}
 }
 
 static void search_or_parse_msgset_args(const struct mail_index_header *hdr,