dovecot-1.2: Added mailbox_search_result_alloc() for building se...
dovecot at dovecot.org
dovecot at dovecot.org
Wed Jun 18 08:04:08 EEST 2008
details: http://hg.dovecot.org/dovecot-1.2/rev/9e4be86d4b7d
changeset: 7893:9e4be86d4b7d
user: Timo Sirainen <tss at iki.fi>
date: Wed Jun 18 06:34:34 2008 +0300
description:
Added mailbox_search_result_alloc() for building search results manually.
diffstat:
2 files changed, 23 insertions(+), 8 deletions(-)
src/lib-storage/mailbox-search-result-private.h | 4 +++
src/lib-storage/mailbox-search-result.c | 27 ++++++++++++++++-------
diffs (68 lines):
diff -r 053d1aa325f6 -r 9e4be86d4b7d src/lib-storage/mailbox-search-result-private.h
--- a/src/lib-storage/mailbox-search-result-private.h Wed Jun 18 06:33:08 2008 +0300
+++ b/src/lib-storage/mailbox-search-result-private.h Wed Jun 18 06:34:34 2008 +0300
@@ -19,6 +19,10 @@ struct mail_search_result {
unsigned int args_have_modseq:1;
};
+struct mail_search_result *
+mailbox_search_result_alloc(struct mailbox *box, struct mail_search_args *args,
+ enum mailbox_search_result_flags flags);
+
/* called when initial search is done. */
void mailbox_search_results_initial_done(struct mail_search_context *ctx);
diff -r 053d1aa325f6 -r 9e4be86d4b7d src/lib-storage/mailbox-search-result.c
--- a/src/lib-storage/mailbox-search-result.c Wed Jun 18 06:33:08 2008 +0300
+++ b/src/lib-storage/mailbox-search-result.c Wed Jun 18 06:34:34 2008 +0300
@@ -33,24 +33,23 @@ mailbox_search_result_analyze_args(struc
}
struct mail_search_result *
-mailbox_search_result_save(struct mail_search_context *ctx,
- enum mailbox_search_result_flags flags)
+mailbox_search_result_alloc(struct mailbox *box, struct mail_search_args *args,
+ enum mailbox_search_result_flags flags)
{
struct mail_search_result *result;
result = i_new(struct mail_search_result, 1);
- result->box = ctx->transaction->box;
+ result->box = box;
result->flags = flags;
i_array_init(&result->uids, 32);
i_array_init(&result->never_uids, 128);
if ((result->flags & MAILBOX_SEARCH_RESULT_FLAG_UPDATE) != 0) {
- result->search_args = ctx->args;
+ result->search_args = args;
mail_search_args_ref(result->search_args);
- mailbox_search_result_analyze_args(result, ctx->args->args);
- }
-
- array_append(&ctx->results, &result, 1);
+ mailbox_search_result_analyze_args(result, args->args);
+ }
+
array_append(&result->box->search_results, &result, 1);
return result;
}
@@ -84,6 +83,18 @@ void mailbox_search_result_free(struct m
i_free(result);
}
+struct mail_search_result *
+mailbox_search_result_save(struct mail_search_context *ctx,
+ enum mailbox_search_result_flags flags)
+{
+ struct mail_search_result *result;
+
+ result = mailbox_search_result_alloc(ctx->transaction->box,
+ ctx->args, flags);
+ array_append(&ctx->results, &result, 1);
+ return result;
+}
+
static void
mailbox_search_result_initial_done(struct mail_search_result *result)
{
More information about the dovecot-cvs
mailing list