comparison 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
comparison
equal deleted inserted replaced
12631:7701fb66d82a 12632:2c599f0eab69
1 /* Copyright (c) 2006-2010 Dovecot authors, see the included COPYING file */ 1 /* Copyright (c) 2006-2010 Dovecot authors, see the included COPYING file */
2 2
3 #include "lib.h" 3 #include "lib.h"
4 #include "array.h"
5 #include "imap-match.h"
4 #include "mailbox-list-private.h" 6 #include "mailbox-list-private.h"
5 7
6 #define MAILBOX_LIST_NAME_NONE "none" 8 #define MAILBOX_LIST_NAME_NONE "none"
7 #define GLOBAL_TEMP_PREFIX ".temp." 9 #define GLOBAL_TEMP_PREFIX ".temp."
8 10
112 return -1; 114 return -1;
113 } 115 }
114 116
115 static struct mailbox_list_iterate_context * 117 static struct mailbox_list_iterate_context *
116 none_list_iter_init(struct mailbox_list *list, 118 none_list_iter_init(struct mailbox_list *list,
117 const char *const *patterns ATTR_UNUSED, 119 const char *const *patterns,
118 enum mailbox_list_iter_flags flags) 120 enum mailbox_list_iter_flags flags)
119 { 121 {
120 struct mailbox_list_iterate_context *ctx; 122 struct mailbox_list_iterate_context *ctx;
121 123
122 ctx = i_new(struct mailbox_list_iterate_context, 1); 124 ctx = i_new(struct mailbox_list_iterate_context, 1);
123 ctx->list = list; 125 ctx->list = list;
124 ctx->flags = flags; 126 ctx->flags = flags;
127 ctx->glob = imap_match_init_multiple(default_pool, patterns, TRUE,
128 mail_namespace_get_sep(list->ns));
129 array_create(&ctx->module_contexts, default_pool, sizeof(void *), 5);
125 return ctx; 130 return ctx;
126 } 131 }
127 132
128 static int 133 static int
129 none_list_iter_deinit(struct mailbox_list_iterate_context *ctx) 134 none_list_iter_deinit(struct mailbox_list_iterate_context *ctx)
130 { 135 {
136 array_free(&ctx->module_contexts);
137 imap_match_deinit(&ctx->glob);
131 i_free(ctx); 138 i_free(ctx);
132 return 0; 139 return 0;
133 } 140 }
134 141
135 static const struct mailbox_info * 142 static const struct mailbox_info *