Mercurial > dovecot > core-2.2
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 * |