.name = MAILBOX_LIST_NAME_MAILDIRPLUSPLUS,
.props = MAILBOX_LIST_PROP_NO_MAILDIR_NAME |
MAILBOX_LIST_PROP_NO_ALT_DIR |
- MAILBOX_LIST_PROP_NO_NOSELECT,
+ MAILBOX_LIST_PROP_NO_NOSELECT |
+ MAILBOX_LIST_PROP_NO_INTERNAL_NAMES,
.mailbox_name_max_length = MAILBOX_LIST_NAME_MAX_LENGTH,
.v = {
.name = MAILBOX_LIST_NAME_IMAPDIR,
.props = MAILBOX_LIST_PROP_NO_MAILDIR_NAME |
MAILBOX_LIST_PROP_NO_ALT_DIR |
- MAILBOX_LIST_PROP_NO_NOSELECT,
+ MAILBOX_LIST_PROP_NO_NOSELECT |
+ MAILBOX_LIST_PROP_NO_INTERNAL_NAMES,
.mailbox_name_max_length = MAILBOX_LIST_NAME_MAX_LENGTH,
.v = {
some mailbox formats have reserved directory names, such as
Maildir's cur/new/tmp. if any of those would conflict with the
- mailbox directory name, it's not valid. maildir++ is kludged here as
- a special case because all of its mailbox dirs begin with "." */
+ mailbox directory name, it's not valid. */
allow_internal_dirs = list->v.is_internal_name == NULL ||
*list->set.maildir_name != '\0' ||
- strcmp(list->name, MAILBOX_LIST_NAME_MAILDIRPLUSPLUS) == 0;
+ (list->props & MAILBOX_LIST_PROP_NO_INTERNAL_NAMES) != 0;
T_BEGIN {
const char *const *names;
MAILBOX_LIST_PROP_AUTOCREATE_DIRS = 0x10,
/* Explicitly disable mailbox list index */
MAILBOX_LIST_PROP_NO_LIST_INDEX = 0x20,
+ /* Disable checking mailbox_list.is_internal_name(). The layout is
+ implemented in a way that there aren't any such reserved internal
+ names. For example Maildir++ prefixes all mailboxes with "." */
+ MAILBOX_LIST_PROP_NO_INTERNAL_NAMES = 0x40,
};
enum mailbox_list_flags {