Mercurial > dovecot > core-2.2
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; }