Mercurial > dovecot > original-hg > dovecot-1.2
changeset 6447:ed433a2a5f3d HEAD
When sorting appends, sort also keyword resets.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sat, 22 Sep 2007 12:31:52 +0300 |
parents | 0a44101371a4 |
children | bb838223bb93 |
files | src/lib-index/mail-index-transaction.c |
diffstat | 1 files changed, 17 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-index/mail-index-transaction.c Sat Sep 22 12:28:03 2007 +0300 +++ b/src/lib-index/mail-index-transaction.c Sat Sep 22 12:31:52 2007 +0300 @@ -416,20 +416,24 @@ struct mail_index_transaction_keyword_update *updates; unsigned int i, count; - /* fix the order in keywords */ - if (!array_is_created(&t->keyword_updates)) - return; + if (array_is_created(&t->keyword_updates)) { + updates = array_get_modifiable(&t->keyword_updates, &count); + for (i = 0; i < count; i++) { + if (array_is_created(&updates->add_seq)) { + sort_appends_seq_range(t, &updates[i].add_seq, + old_to_newseq_map); + } + if (array_is_created(&updates->remove_seq)) { + sort_appends_seq_range(t, + &updates[i].remove_seq, + old_to_newseq_map); + } + } + } - updates = array_get_modifiable(&t->keyword_updates, &count); - for (i = 0; i < count; i++) { - if (array_is_created(&updates->add_seq)) { - sort_appends_seq_range(t, &updates[i].add_seq, - old_to_newseq_map); - } - if (array_is_created(&updates->remove_seq)) { - sort_appends_seq_range(t, &updates[i].remove_seq, - old_to_newseq_map); - } + if (array_is_created(&t->keyword_resets)) { + sort_appends_seq_range(t, &t->keyword_resets, + old_to_newseq_map); } }