]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
LAYOUT=Maildir++: List INBOX as \NoInferiors when necessary
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Wed, 13 Dec 2017 23:23:45 +0000 (01:23 +0200)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Thu, 14 Dec 2017 19:04:09 +0000 (21:04 +0200)
src/lib-storage/list/mailbox-list-maildir-iter.c

index 64a63a566e1bdfbe365d75f78e3d162082de876e..9becd2c3a76a5d25c23a1cb1c21ebf5d2f1fc486 100644 (file)
@@ -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