dovecot-1.0: Searching NOT sequence set with multiple search ran...
dovecot at dovecot.org
dovecot at dovecot.org
Sat Sep 22 14:28:24 EEST 2007
details: http://hg.dovecot.org/dovecot-1.0/rev/d144e54f09e6
changeset: 5408:d144e54f09e6
user: Timo Sirainen <tss at iki.fi>
date: Sat Sep 22 14:28:01 2007 +0300
description:
Searching NOT sequence set with multiple search ranges containing either
first or last sequence caused some messages to be skipped.
diffstat:
1 file changed, 10 insertions(+), 6 deletions(-)
src/lib-storage/index/index-search.c | 16 ++++++++++------
diffs (26 lines):
diff -r 69a4d09ea3c0 -r d144e54f09e6 src/lib-storage/index/index-search.c
--- a/src/lib-storage/index/index-search.c Sun Sep 16 14:49:02 2007 +0300
+++ b/src/lib-storage/index/index-search.c Sat Sep 22 14:28:01 2007 +0300
@@ -646,12 +646,16 @@ static int search_msgset_fix(struct inde
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);
+ if (not)
+ update_seqs(set, hdr, seq1_r, seq2_r, TRUE);
+ }
+
+ 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, FALSE);
+ }
return 0;
}
More information about the dovecot-cvs
mailing list