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