From: Timo Sirainen Date: Thu, 29 Apr 2021 12:46:48 +0000 (+0300) Subject: imap: Allow imap_search_seqset_iter_init() to iterate over uidset also X-Git-Tag: 2.3.15~36 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=35019c95c522de530895ed6af85b5a5aa00b886a;p=thirdparty%2Fdovecot%2Fcore.git imap: Allow imap_search_seqset_iter_init() to iterate over uidset also --- diff --git a/src/imap/imap-search-args.c b/src/imap/imap-search-args.c index 7f6552c32a..9aea1be897 100644 --- a/src/imap/imap-search-args.c +++ b/src/imap/imap-search-args.c @@ -266,9 +266,9 @@ imap_search_seqset_iter_init(struct mail_search_args *search_args, iter->batch_size = batch_size; mail_search_args_ref(iter->search_args); - /* Assume that the search query is always a seqset or SEARCH_ALL. */ switch (search_args->args->type) { case SEARCH_SEQSET: + case SEARCH_UIDSET: break; case SEARCH_ALL: if (search_args->args->match_not) { @@ -287,7 +287,8 @@ imap_search_seqset_iter_init(struct mail_search_args *search_args, search_args->args->type); } - i_assert(search_args->args->type == SEARCH_SEQSET); + i_assert(search_args->args->type == SEARCH_SEQSET || + search_args->args->type == SEARCH_UIDSET); i_array_init(&iter->seqset_left, array_count(&search_args->args->value.seqset)); diff --git a/src/imap/imap-search-args.h b/src/imap/imap-search-args.h index 32c95c49ca..53ace00fcf 100644 --- a/src/imap/imap-search-args.h +++ b/src/imap/imap-search-args.h @@ -30,8 +30,9 @@ void imap_search_add_changed_since(struct mail_search_args *search_args, /* Iterate search_args in batches of messages. The search_args itself is modified each time imap_search_seqset_iter_next() is called. Note that - search_args is expected to come from imap_search_get_anyset(), i.e. it - must contain only SEARCH_SEQSET or SEARCH_ALL arg. */ + search_args is expected to come from imap_search_get_anyset(), so it should + have a single parameter containing SEARCH_ALL, SEARCH_SEQSET or + SEARCH_UIDSET. */ struct imap_search_seqset_iter * imap_search_seqset_iter_init(struct mail_search_args *search_args, uint32_t messages_count, unsigned int batch_size);