]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
mailbox_list_index=yes: Fixed list iteration when namespace and backend separators...
authorTimo Sirainen <tss@iki.fi>
Thu, 13 Jun 2013 02:27:30 +0000 (05:27 +0300)
committerTimo Sirainen <tss@iki.fi>
Thu, 13 Jun 2013 02:27:30 +0000 (05:27 +0300)
src/lib-storage/list/mailbox-list-index-iter.c
src/lib-storage/list/mailbox-list-index.h

index 2f691634b3fc1dfcd4ddf843ac3fe6739081c768..c7eec5aec514cf73e1938fab7488fdc178d10058 100644 (file)
@@ -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));
index 7bf99c22fed5b5f3ea9b184b355072022efbd14c..ec2f9bdc5a7266d69afd2be0592c4dfd348e19b7 100644 (file)
@@ -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;
 };