From c7e674eebd9bf56eb4e9a657197dafcbd3fe4975 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Thu, 14 Dec 2017 01:23:45 +0200 Subject: [PATCH] LAYOUT=Maildir++: List INBOX as \NoInferiors when necessary --- src/lib-storage/list/mailbox-list-maildir-iter.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/lib-storage/list/mailbox-list-maildir-iter.c b/src/lib-storage/list/mailbox-list-maildir-iter.c index 64a63a566e..9becd2c3a7 100644 --- a/src/lib-storage/list/mailbox-list-maildir-iter.c +++ b/src/lib-storage/list/mailbox-list-maildir-iter.c @@ -505,6 +505,12 @@ maildir_list_iter_next(struct mailbox_list_iterate_context *_ctx) return mailbox_list_iter_default_next(_ctx); ctx->info.flags = node->flags; + if (strcmp(ctx->info.vname, "INBOX") == 0 && + mail_namespace_is_inbox_noinferiors(ctx->info.ns)) { + i_assert((ctx->info.flags & MAILBOX_NOCHILDREN) != 0); + ctx->info.flags &= ~MAILBOX_NOCHILDREN; + ctx->info.flags |= MAILBOX_NOINFERIORS; + } if ((_ctx->flags & MAILBOX_LIST_ITER_RETURN_SUBSCRIBED) != 0 && (_ctx->flags & MAILBOX_LIST_ITER_SELECT_SUBSCRIBED) == 0) { /* we're listing all mailboxes but we want to know