From: Timo Sirainen Date: Wed, 13 Dec 2017 23:23:01 +0000 (+0200) Subject: lib-storage: Add mail_namespace_is_inbox_noinferiors() X-Git-Tag: 2.2.34~184 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=46f891d4e68ffa2ce761f0deb7abd25bac7910cc;p=thirdparty%2Fdovecot%2Fcore.git lib-storage: Add mail_namespace_is_inbox_noinferiors() --- diff --git a/src/lib-storage/mail-namespace.h b/src/lib-storage/mail-namespace.h index d60e6d966a..011a5f2e61 100644 --- a/src/lib-storage/mail-namespace.h +++ b/src/lib-storage/mail-namespace.h @@ -190,4 +190,16 @@ void mail_namespace_finish_list_init(struct mail_namespace *ns, type=public namespace "wrong"). */ bool mail_namespace_is_shared_user_root(struct mail_namespace *ns); +/* Returns TRUE if namespace includes INBOX that should be \Noinferiors. + This happens when the namespace has a prefix, which is not empty and not + "INBOX". This happens, because if storage_name=INBOX/foo it would be + converted to vname=prefix/INBOX/foo. */ +static inline bool +mail_namespace_is_inbox_noinferiors(struct mail_namespace *ns) +{ + return (ns->flags & NAMESPACE_FLAG_INBOX_USER) != 0 && + ns->prefix_len > 0 && + strncmp(ns->prefix, "INBOX", ns->prefix_len-1) != 0; +} + #endif