# HG changeset patch # User Timo Sirainen # Date 1297483540 -7200 # Node ID 440a1a3660ba04b8ea853bfb54211d418f630fa2 # Parent 47b4b5a123350bc67b24f9bda983fea24f539a81 lib-storage: Fixes to mailbox_list_iter_update() diff -r 47b4b5a12335 -r 440a1a3660ba src/lib-storage/mailbox-list.c --- a/src/lib-storage/mailbox-list.c Sat Feb 12 06:05:07 2011 +0200 +++ b/src/lib-storage/mailbox-list.c Sat Feb 12 06:05:40 2011 +0200 @@ -1358,14 +1358,12 @@ { struct mail_namespace *ns = ctx->iter_ctx->list->ns; struct mailbox_node *node; - enum mailbox_info_flags create_flags = 0, always_flags; + enum mailbox_info_flags create_flags, always_flags; enum imap_match_result match; const char *p; bool created, add_matched; - if (ctx->update_only || - (ctx->iter_ctx->flags & MAILBOX_LIST_ITER_RETURN_NO_FLAGS) == 0) - create_flags = MAILBOX_NONEXISTENT | MAILBOX_NOCHILDREN; + create_flags = MAILBOX_NOCHILDREN; always_flags = ctx->leaf_flags; add_matched = TRUE; @@ -1407,6 +1405,7 @@ break; name = t_strdup_until(name, p); + create_flags |= MAILBOX_NONEXISTENT; create_flags &= ~MAILBOX_NOCHILDREN; always_flags = MAILBOX_CHILDREN | ctx->parent_flags; }