changeset 4439:12b5fbb3a05c HEAD

Searching (storing, fetching) with sequence sets containing commas was broken
author Timo Sirainen <tss@iki.fi>
date Mon, 26 Jun 2006 11:35:50 +0300
parents 00db36e1b734
children be9c2d069995
files src/lib-storage/index/index-search.c
diffstat 1 files changed, 12 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-storage/index/index-search.c	Sun Jun 25 00:29:03 2006 +0300
+++ b/src/lib-storage/index/index-search.c	Mon Jun 26 11:35:50 2006 +0300
@@ -614,6 +614,9 @@
 			     struct mail_search_seqset *set,
 			     uint32_t *seq1_r, uint32_t *seq2_r, bool not)
 {
+	struct mail_search_seqset full_set;
+	uint32_t min_seq = (uint32_t)-1, max_seq = 0;
+
 	for (; set != NULL; set = set->next) {
 		if (set->seq1 > hdr->messages_count) {
 			if (set->seq1 != (uint32_t)-1 &&
@@ -640,8 +643,16 @@
 			return -1;
 		}
 
-		update_seqs(set, hdr, seq1_r, seq2_r, not);
+		if (set->seq1 < min_seq)
+			min_seq = set->seq1;
+		if (set->seq2 > max_seq)
+			max_seq = set->seq2;
 	}
+
+	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 0;
 }