From: Timo Sirainen Date: Thu, 13 Jun 2013 02:27:30 +0000 (+0300) Subject: mailbox_list_index=yes: Fixed list iteration when namespace and backend separators... X-Git-Tag: 2.2.3~17 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=cf05592015b99607095f970bf914f5d069bf0666;p=thirdparty%2Fdovecot%2Fcore.git mailbox_list_index=yes: Fixed list iteration when namespace and backend separators differed. --- diff --git a/src/lib-storage/list/mailbox-list-index-iter.c b/src/lib-storage/list/mailbox-list-index-iter.c index 2f691634b3..c7eec5aec5 100644 --- a/src/lib-storage/list/mailbox-list-index-iter.c +++ b/src/lib-storage/list/mailbox-list-index-iter.c @@ -47,7 +47,6 @@ mailbox_list_index_iter_init(struct mailbox_list *list, ctx->ctx.flags = flags; ctx->ctx.glob = imap_match_init_multiple(pool, patterns, TRUE, ns_sep); array_create(&ctx->ctx.module_contexts, pool, sizeof(void *), 5); - ctx->sep = ns_sep; ctx->info_pool = pool_alloconly_create("mailbox list index iter info", 128); if (!iter_use_index(ctx)) { @@ -74,8 +73,10 @@ mailbox_list_index_update_info(struct mailbox_list_index_iterate_context *ctx) p_clear(ctx->info_pool); str_truncate(ctx->path, ctx->parent_len); - if (str_len(ctx->path) > 0) - str_append_c(ctx->path, ctx->sep); + if (str_len(ctx->path) > 0) { + str_append_c(ctx->path, + mailbox_list_get_hierarchy_sep(ctx->ctx.list)); + } str_append(ctx->path, node->name); ctx->info.vname = mailbox_list_get_vname(ctx->ctx.list, str_c(ctx->path)); diff --git a/src/lib-storage/list/mailbox-list-index.h b/src/lib-storage/list/mailbox-list-index.h index 7bf99c22fe..ec2f9bdc5a 100644 --- a/src/lib-storage/list/mailbox-list-index.h +++ b/src/lib-storage/list/mailbox-list-index.h @@ -119,7 +119,6 @@ struct mailbox_list_index_iterate_context { unsigned int parent_len; string_t *path; struct mailbox_list_index_node *next_node; - char sep; unsigned int failed:1; };