Mercurial > dovecot > original-hg > dovecot-1.2
changeset 7893:9e4be86d4b7d HEAD
Added mailbox_search_result_alloc() for building search results manually.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Wed, 18 Jun 2008 06:34:34 +0300 |
parents | 053d1aa325f6 |
children | 15f01af8449a |
files | src/lib-storage/mailbox-search-result-private.h src/lib-storage/mailbox-search-result.c |
diffstat | 2 files changed, 21 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- 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 @@ 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);
--- 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 @@ } 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); + mailbox_search_result_analyze_args(result, args->args); } - array_append(&ctx->results, &result, 1); array_append(&result->box->search_results, &result, 1); return result; } @@ -84,6 +83,18 @@ 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) {