dovecot-1.2: Added mailbox_search_result_build().
dovecot at dovecot.org
dovecot at dovecot.org
Fri Jun 20 05:37:40 EEST 2008
details: http://hg.dovecot.org/dovecot-1.2/rev/021c39f58af3
changeset: 7907:021c39f58af3
user: Timo Sirainen <tss at iki.fi>
date: Fri Jun 20 05:30:00 2008 +0300
description:
Added mailbox_search_result_build().
diffstat:
2 files changed, 26 insertions(+)
src/lib-storage/mail-storage.c | 21 +++++++++++++++++++++
src/lib-storage/mail-storage.h | 5 +++++
diffs (46 lines):
diff -r d987e018483b -r 021c39f58af3 src/lib-storage/mail-storage.c
--- 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 @@ int mailbox_search_next_nonblock(struct
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)
diff -r d987e018483b -r 021c39f58af3 src/lib-storage/mail-storage.h
--- 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 @@ mailbox_search_result_save(struct mail_s
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);
More information about the dovecot-cvs
mailing list