From fd01ff07e724e72865b68c113947d901686c820a Mon Sep 17 00:00:00 2001 From: Stephan Bosch Date: Thu, 20 Feb 2025 03:44:20 +0100 Subject: [PATCH] imap: cmd-list - Make the list iter flags a parameter for list_send_status() Before, it was available only in the LIST command context. This is preparation for adding infrastructure for dynamically adding support for new RETURN flags. --- src/imap/cmd-list.c | 5 +++-- src/imap/imap-list.h | 3 +++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/imap/cmd-list.c b/src/imap/cmd-list.c index eec6fa3d24..79ef22b87d 100644 --- a/src/imap/cmd-list.c +++ b/src/imap/cmd-list.c @@ -4,7 +4,6 @@ #include "array.h" #include "str.h" #include "strescape.h" -#include "mailbox-list-iter.h" #include "imap-utf7.h" #include "imap-quote.h" #include "imap-match.h" @@ -184,6 +183,7 @@ list_send_status(struct cmd_list_context *ctx, const struct imap_list_return_flag_params *params) { enum mailbox_info_flags mbox_flags = params->mbox_flags; + enum mailbox_list_iter_flags list_flags = params->list_flags; struct imap_status_result result; if ((mbox_flags & (MAILBOX_NONEXISTENT | MAILBOX_NOSELECT)) != 0) { @@ -191,7 +191,7 @@ list_send_status(struct cmd_list_context *ctx, return; } if ((mbox_flags & MAILBOX_SUBSCRIBED) == 0 && - (ctx->list_flags & MAILBOX_LIST_ITER_SELECT_SUBSCRIBED) != 0) { + (list_flags & MAILBOX_LIST_ITER_SELECT_SUBSCRIBED) != 0) { /* listing subscriptions, but only child is subscribed */ i_assert((mbox_flags & MAILBOX_CHILD_SUBSCRIBED) != 0); return; @@ -259,6 +259,7 @@ static bool cmd_list_continue(struct client_command_context *cmd) .name = name, .mutf7_name = str_c(mutf7_name), .mbox_flags = flags, + .list_flags = ctx->list_flags, }; /* if we're listing subscriptions and there are diff --git a/src/imap/imap-list.h b/src/imap/imap-list.h index f1ea12c0d3..2dbbce3279 100644 --- a/src/imap/imap-list.h +++ b/src/imap/imap-list.h @@ -1,11 +1,14 @@ #ifndef IMAP_LIST_H #define IMAP_LIST_H +#include "mailbox-list-iter.h" + struct imap_list_return_flag_params { const char *name; const char *mutf7_name; enum mailbox_info_flags mbox_flags; + enum mailbox_list_iter_flags list_flags; struct mail_namespace *ns; }; -- 2.47.3