Mercurial > dovecot > original-hg > dovecot-1.2
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