From: Timo Sirainen Date: Mon, 15 Sep 2003 17:49:04 +0000 (+0300) Subject: Ignore hierarchy separator at the end of mailbox name. X-Git-Tag: 1.1.alpha1~4330 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=04e81955f3fafac9e6a48642198640a65fa6732d;p=thirdparty%2Fdovecot%2Fcore.git Ignore hierarchy separator at the end of mailbox name. --HG-- branch : HEAD --- diff --git a/src/lib-storage/index/maildir/maildir-storage.c b/src/lib-storage/index/maildir/maildir-storage.c index 88bac8ee1e..b2a5a5549a 100644 --- a/src/lib-storage/index/maildir/maildir-storage.c +++ b/src/lib-storage/index/maildir/maildir-storage.c @@ -126,8 +126,7 @@ static int maildir_is_valid_create_name(const char *name) size_t len; len = strlen(name); - if (len == 0 || - name[0] == MAILDIR_FS_SEP || name[len-1] == MAILDIR_FS_SEP || + if (len == 0 || name[0] == MAILDIR_FS_SEP || strchr(name, '*') != NULL || strchr(name, '%') != NULL) return FALSE; @@ -174,6 +173,12 @@ const char *maildir_fix_mailbox_name(struct mail_storage *storage, char *dup, *p, sep; size_t len; + len = strlen(name); + if (len > 1 && name[len-1] == storage->hierarchy_sep) { + /* mailbox and mailbox/ should be treated equally */ + name = t_strndup(name, len-1); + } + if (strncasecmp(name, "INBOX", 5) == 0 && (name[5] == '\0' || name[5] == storage->hierarchy_sep)) { /* use same case with all INBOX folders or we'll get diff --git a/src/lib-storage/index/mbox/mbox-storage.c b/src/lib-storage/index/mbox/mbox-storage.c index 80dfe93d0a..37ecc164ba 100644 --- a/src/lib-storage/index/mbox/mbox-storage.c +++ b/src/lib-storage/index/mbox/mbox-storage.c @@ -222,6 +222,12 @@ const char *mbox_fix_mailbox_name(struct mail_storage *storage, char *dup, *p, sep; size_t len; + len = strlen(name); + if (len > 1 && name[len-1] == storage->hierarchy_sep) { + /* mailbox and mailbox/ should be treated equally */ + name = t_strndup(name, len-1); + } + if (strncasecmp(name, "INBOX", 5) == 0 && (name[5] == '\0' || name[5] == storage->hierarchy_sep)) { name = t_strconcat("INBOX", name+5, NULL);