]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
imap: Allow imap_search_seqset_iter_init() to iterate over uidset also
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Thu, 29 Apr 2021 12:46:48 +0000 (15:46 +0300)
committerTimo Sirainen <timo.sirainen@open-xchange.com>
Wed, 5 May 2021 14:22:04 +0000 (17:22 +0300)
src/imap/imap-search-args.c
src/imap/imap-search-args.h

index 7f6552c32a2d948b2f8caddbbea79c1d66e35a3e..9aea1be897dcdbe187cf96f4943c3d2359e7b5e1 100644 (file)
@@ -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));
index 32c95c49cac50fb1ad0f863a8f8e7bc7bc0663b3..53ace00fcf4d58e1f1af0ad697e3d1238329d99e 100644 (file)
@@ -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);