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.3.0.rc1~51 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9a2149cccfab52ca88cd6b5eecec776a0c3584ec;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 93583ca880..408e98c87f 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