# HG changeset patch # User Timo Sirainen # Date 1190460481 -10800 # Node ID 3645048f6f6ee104ec0645f63f44c8cde1bb58ee # Parent ac87cdd4430515afcb76aba0740f20efd5e4988b Searching NOT sequence set with multiple search ranges containing either first or last sequence caused some messages to be skipped. diff -r ac87cdd44305 -r 3645048f6f6e src/lib-storage/index/index-search.c --- 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,