dovecot: Added mail_namespace_find_inbox() and mail_namespace_fi...

dovecot at dovecot.org dovecot at dovecot.org
Wed Jun 27 20:21:05 EEST 2007


details:   http://hg.dovecot.org/dovecot/rev/f56a71347378
changeset: 5810:f56a71347378
user:      Timo Sirainen <tss at iki.fi>
date:      Wed Jun 27 20:19:49 2007 +0300
description:
Added mail_namespace_find_inbox() and mail_namespace_find_prefix_nosep()

diffstat:

2 files changed, 31 insertions(+)
src/lib-storage/mail-namespace.c |   24 ++++++++++++++++++++++++
src/lib-storage/mail-namespace.h |    7 +++++++

diffs (61 lines):

diff -r ab88a5e8ac95 -r f56a71347378 src/lib-storage/mail-namespace.c
--- 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 @@ mail_namespace_find_visible(struct mail_
 	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 @@ mail_namespace_find_prefix(struct mail_n
 	}
 	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;
+}
diff -r ab88a5e8ac95 -r f56a71347378 src/lib-storage/mail-namespace.h
--- 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 *
 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 *
 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


More information about the dovecot-cvs mailing list