From cf05592015b99607095f970bf914f5d069bf0666 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Thu, 13 Jun 2013 05:27:30 +0300 Subject: [PATCH] mailbox_list_index=yes: Fixed list iteration when namespace and backend separators differed. --- src/lib-storage/list/mailbox-list-index-iter.c | 7 ++++--- src/lib-storage/list/mailbox-list-index.h | 1 - 2 files changed, 4 insertions(+), 4 deletions(-) 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; }; -- 2.47.3