changeset 9466:3111c362edff HEAD

Added mail_namespace_get_storage_name().
author Timo Sirainen <tss@iki.fi>
date Fri, 12 Jun 2009 12:52:03 -0400
parents b09ad4858d22
children 7b6fe859ec64
files src/lib-storage/mail-namespace.c src/lib-storage/mail-namespace.h
diffstat 2 files changed, 18 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-storage/mail-namespace.c	Fri Jun 12 12:50:27 2009 -0400
+++ b/src/lib-storage/mail-namespace.c	Fri Jun 12 12:52:03 2009 -0400
@@ -380,6 +380,21 @@
 	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)
 {
--- a/src/lib-storage/mail-namespace.h	Fri Jun 12 12:50:27 2009 -0400
+++ b/src/lib-storage/mail-namespace.h	Fri Jun 12 12:52:03 2009 -0400
@@ -88,6 +88,9 @@
 
 /* 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,