Mercurial > dovecot > original-hg > dovecot-1.2
changeset 7907:021c39f58af3 HEAD
Added mailbox_search_result_build().
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Fri, 20 Jun 2008 05:30:00 +0300 |
parents | d987e018483b |
children | 1e69c84a1e5a |
files | src/lib-storage/mail-storage.c src/lib-storage/mail-storage.h |
diffstat | 2 files changed, 26 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-storage/mail-storage.c Fri Jun 20 05:29:19 2008 +0300 +++ b/src/lib-storage/mail-storage.c Fri Jun 20 05:30:00 2008 +0300 @@ -686,6 +686,27 @@ return ret; } +int mailbox_search_result_build(struct mailbox_transaction_context *t, + struct mail_search_args *args, + enum mailbox_search_result_flags flags, + struct mail_search_result **result_r) +{ + struct mail_search_context *ctx; + struct mail *mail; + int ret; + + ctx = mailbox_search_init(t, args, NULL); + *result_r = mailbox_search_result_save(ctx, flags); + mail = mail_alloc(t, 0, NULL); + while (mailbox_search_next(ctx, mail) > 0) ; + mail_free(&mail); + + ret = mailbox_search_deinit(&ctx); + if (ret < 0) + mailbox_search_result_free(result_r); + return ret; +} + struct mailbox_transaction_context * mailbox_transaction_begin(struct mailbox *box, enum mailbox_transaction_flags flags)
--- a/src/lib-storage/mail-storage.h Fri Jun 20 05:29:19 2008 +0300 +++ b/src/lib-storage/mail-storage.h Fri Jun 20 05:30:00 2008 +0300 @@ -416,6 +416,11 @@ enum mailbox_search_result_flags flags); /* Free memory used by search result. */ void mailbox_search_result_free(struct mail_search_result **result); +/* A simplified API for searching and saving the result. */ +int mailbox_search_result_build(struct mailbox_transaction_context *t, + struct mail_search_args *args, + enum mailbox_search_result_flags flags, + struct mail_search_result **result_r); /* Return all messages' UIDs in the search result. */ const ARRAY_TYPE(seq_range) * mailbox_search_result_get(struct mail_search_result *result);