diff src/lib-storage/list/mailbox-list-none.c @ 12632:2c599f0eab69

lib-storage: Made struct mailbox_list_iterate_context usable for plugins.
author Timo Sirainen <tss@iki.fi>
date Wed, 02 Feb 2011 01:14:57 +0200
parents a2780b694b2d
children 4e4c7f982fd5
line wrap: on
line diff
--- a/src/lib-storage/list/mailbox-list-none.c	Tue Feb 01 21:07:27 2011 +0200
+++ b/src/lib-storage/list/mailbox-list-none.c	Wed Feb 02 01:14:57 2011 +0200
@@ -1,6 +1,8 @@
 /* Copyright (c) 2006-2010 Dovecot authors, see the included COPYING file */
 
 #include "lib.h"
+#include "array.h"
+#include "imap-match.h"
 #include "mailbox-list-private.h"
 
 #define MAILBOX_LIST_NAME_NONE "none"
@@ -114,7 +116,7 @@
 
 static struct mailbox_list_iterate_context *
 none_list_iter_init(struct mailbox_list *list,
-		    const char *const *patterns ATTR_UNUSED,
+		    const char *const *patterns,
 		    enum mailbox_list_iter_flags flags)
 {
 	struct mailbox_list_iterate_context *ctx;
@@ -122,12 +124,17 @@
 	ctx = i_new(struct mailbox_list_iterate_context, 1);
 	ctx->list = list;
 	ctx->flags = flags;
+	ctx->glob = imap_match_init_multiple(default_pool, patterns, TRUE,
+					     mail_namespace_get_sep(list->ns));
+	array_create(&ctx->module_contexts, default_pool, sizeof(void *), 5);
 	return ctx;
 }
 
 static int
 none_list_iter_deinit(struct mailbox_list_iterate_context *ctx)
 {
+	array_free(&ctx->module_contexts);
+	imap_match_deinit(&ctx->glob);
 	i_free(ctx);
 	return 0;
 }