changeset 12665:440a1a3660ba

lib-storage: Fixes to mailbox_list_iter_update()
author Timo Sirainen <tss@iki.fi>
date Sat, 12 Feb 2011 06:05:40 +0200
parents 47b4b5a12335
children 0af45e821da1
files src/lib-storage/mailbox-list.c
diffstat 1 files changed, 3 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- 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;
 	}