From 482ca9ca1b9cfa58df9648db77b5ced84c65a05a Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Fri, 12 Jun 2009 12:52:03 -0400 Subject: [PATCH] Added mail_namespace_get_storage_name(). --HG-- branch : HEAD --- src/lib-storage/mail-namespace.c | 15 +++++++++++++++ src/lib-storage/mail-namespace.h | 3 +++ 2 files changed, 18 insertions(+) diff --git a/src/lib-storage/mail-namespace.c b/src/lib-storage/mail-namespace.c index 3541ae6d08..680cb1c6c3 100644 --- a/src/lib-storage/mail-namespace.c +++ b/src/lib-storage/mail-namespace.c @@ -380,6 +380,21 @@ const char *mail_namespace_fix_sep(struct mail_namespace *ns, const char *name) return ret; } +const char *mail_namespace_get_storage_name(struct mail_namespace *ns, + const char *name) +{ + unsigned int len = strlen(ns->prefix); + + if (len > 0) { + if (strncmp(ns->prefix, name, len) == 0) + name += len; + else { + i_assert(strcasecmp(name, "INBOX") == 0); + } + } + return mail_namespace_fix_sep(ns, name); +} + const char *mail_namespace_get_vname(struct mail_namespace *ns, string_t *dest, const char *name) { diff --git a/src/lib-storage/mail-namespace.h b/src/lib-storage/mail-namespace.h index 686dcf3133..69a41950f4 100644 --- a/src/lib-storage/mail-namespace.h +++ b/src/lib-storage/mail-namespace.h @@ -88,6 +88,9 @@ void mail_namespace_destroy(struct mail_namespace *ns); /* Update hierarchy separators in given name to real_sep characters. */ const char *mail_namespace_fix_sep(struct mail_namespace *ns, const char *name); +/* Skip namespace prefix and change hierarchy separators. */ +const char *mail_namespace_get_storage_name(struct mail_namespace *ns, + const char *name); /* Write virtual mailbox name to dest and return it. Separators are changed to virtual ones and namespace prefix is inserted except for INBOX. */ const char *mail_namespace_get_vname(struct mail_namespace *ns, string_t *dest, -- 2.47.3