# HG changeset patch # User Timo Sirainen # Date 1296580656 -7200 # Node ID aa131065b53d8b493f55703d3a7253517337a00f # Parent 495fb0e9f7cc5baffc94af431f0f20b7414e5b77 imapc: Don't force a root directory to exist. diff -r 495fb0e9f7cc -r aa131065b53d src/lib-storage/index/imapc/imapc-list.c --- a/src/lib-storage/index/imapc/imapc-list.c Tue Feb 01 19:05:54 2011 +0200 +++ b/src/lib-storage/index/imapc/imapc-list.c Tue Feb 01 19:17:36 2011 +0200 @@ -368,7 +368,7 @@ struct mailbox_list imapc_mailbox_list = { .name = MAILBOX_LIST_NAME_IMAPC, - .props = 0, + .props = MAILBOX_LIST_PROP_NO_ROOT, .mailbox_name_max_length = MAILBOX_LIST_NAME_MAX_LENGTH, { diff -r 495fb0e9f7cc -r aa131065b53d src/lib-storage/index/imapc/imapc-storage.c --- a/src/lib-storage/index/imapc/imapc-storage.c Tue Feb 01 19:05:54 2011 +0200 +++ b/src/lib-storage/index/imapc/imapc-storage.c Tue Feb 01 19:17:36 2011 +0200 @@ -485,7 +485,7 @@ struct mail_storage imapc_storage = { .name = IMAPC_STORAGE_NAME, - .class_flags = 0, + .class_flags = MAIL_STORAGE_CLASS_FLAG_NO_ROOT, .v = { imapc_get_setting_parser_info, diff -r 495fb0e9f7cc -r aa131065b53d src/lib-storage/mail-storage-private.h --- a/src/lib-storage/mail-storage-private.h Tue Feb 01 19:05:54 2011 +0200 +++ b/src/lib-storage/mail-storage-private.h Tue Feb 01 19:17:36 2011 +0200 @@ -56,7 +56,9 @@ /* mailbox_open_stream() is supported */ MAIL_STORAGE_CLASS_FLAG_OPEN_STREAMS = 0x04, /* never use quota for this storage (e.g. virtual mailboxes) */ - MAIL_STORAGE_CLASS_FLAG_NOQUOTA = 0x08 + MAIL_STORAGE_CLASS_FLAG_NOQUOTA = 0x08, + /* Storage doesn't need a mail root directory */ + MAIL_STORAGE_CLASS_FLAG_NO_ROOT = 0x10 }; struct mail_storage { diff -r 495fb0e9f7cc -r aa131065b53d src/lib-storage/mail-storage.c --- a/src/lib-storage/mail-storage.c Tue Feb 01 19:05:54 2011 +0200 +++ b/src/lib-storage/mail-storage.c Tue Feb 01 19:17:36 2011 +0200 @@ -148,6 +148,9 @@ if (storage_class == NULL && (flags & MAIL_STORAGE_FLAG_NO_AUTODETECTION) == 0) { /* autodetection should take care of this */ + } else if (storage_class != NULL && + (storage_class->class_flags & MAIL_STORAGE_CLASS_FLAG_NO_ROOT) != 0) { + /* root not required for this storage */ } else if (list != NULL && (list->props & MAILBOX_LIST_PROP_NO_ROOT) != 0) { /* root not required for this layout */