changeset 5810:f56a71347378 HEAD

Added mail_namespace_find_inbox() and mail_namespace_find_prefix_nosep()
author Timo Sirainen <tss@iki.fi>
date Wed, 27 Jun 2007 20:19:49 +0300
parents ab88a5e8ac95
children e0b451e0c190
files src/lib-storage/mail-namespace.c src/lib-storage/mail-namespace.h
diffstat 2 files changed, 31 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-storage/mail-namespace.c	Wed Jun 27 19:12:42 2007 +0300
+++ b/src/lib-storage/mail-namespace.c	Wed Jun 27 20:19:49 2007 +0300
@@ -338,6 +338,14 @@
 	return mail_namespace_find_int(namespaces, mailbox, FALSE);
 }
 
+struct mail_namespace *
+mail_namespace_find_inbox(struct mail_namespace *namespaces)
+{
+	while ((namespaces->flags & NAMESPACE_FLAG_INBOX) == 0)
+		namespaces = namespaces->next;
+	return namespaces;
+}
+
 bool mail_namespace_update_name(struct mail_namespace *ns,
 				const char **mailbox)
 {
@@ -362,3 +370,19 @@
 	}
 	return NULL;
 }
+
+struct mail_namespace *
+mail_namespace_find_prefix_nosep(struct mail_namespace *namespaces,
+				 const char *prefix)
+{
+        struct mail_namespace *ns;
+	unsigned int len = strlen(prefix);
+
+	for (ns = namespaces; ns != NULL; ns = ns->next) {
+		if (ns->prefix_len == len + 1 &&
+		    strncmp(ns->prefix, prefix, len) == 0 &&
+		    ns->prefix[len] == ns->sep)
+			return ns;
+	}
+	return NULL;
+}
--- a/src/lib-storage/mail-namespace.h	Wed Jun 27 19:12:42 2007 +0300
+++ b/src/lib-storage/mail-namespace.h	Wed Jun 27 20:19:49 2007 +0300
@@ -51,6 +51,9 @@
 struct mail_namespace *
 mail_namespace_find_visible(struct mail_namespace *namespaces,
 			    const char **mailbox);
+/* Returns the INBOX namespace */
+struct mail_namespace *
+mail_namespace_find_inbox(struct mail_namespace *namespaces);
 /* Returns TRUE if the given namespace matches the mailbox's prefix.
    Updates mailbox name to be a valid name inside the namespace. */
 bool mail_namespace_update_name(struct mail_namespace *ns,
@@ -60,5 +63,9 @@
 struct mail_namespace *
 mail_namespace_find_prefix(struct mail_namespace *namespaces,
 			   const char *prefix);
+/* Like _find_prefix(), but ignore trailing separator */
+struct mail_namespace *
+mail_namespace_find_prefix_nosep(struct mail_namespace *namespaces,
+				 const char *prefix);
 
 #endif