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;
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
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);