From: Timo Sirainen Date: Wed, 28 Apr 2010 19:02:10 +0000 (+0300) Subject: lib-storage: Added mail_search_build_add() X-Git-Tag: 2.0.beta5~76 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=55058d5f50f7e53bb22df4fa6ae951c8001416ab;p=thirdparty%2Fdovecot%2Fcore.git lib-storage: Added mail_search_build_add() --HG-- branch : HEAD --- diff --git a/src/lib-storage/mail-search-build.c b/src/lib-storage/mail-search-build.c index 8b1f998a7c..3bbb132115 100644 --- a/src/lib-storage/mail-search-build.c +++ b/src/lib-storage/mail-search-build.c @@ -177,15 +177,23 @@ struct mail_search_args *mail_search_build_init(void) return args; } -void mail_search_build_add_all(struct mail_search_args *args) +struct mail_search_arg * +mail_search_build_add(struct mail_search_args *args, + enum mail_search_arg_type type) { struct mail_search_arg *arg; arg = p_new(args->pool, struct mail_search_arg, 1); - arg->type = SEARCH_ALL; + arg->type = type; arg->next = args->args; args->args = arg; + return arg; +} + +void mail_search_build_add_all(struct mail_search_args *args) +{ + mail_search_build_add(args, SEARCH_ALL); } void mail_search_build_add_seqset(struct mail_search_args *args, @@ -193,11 +201,8 @@ void mail_search_build_add_seqset(struct mail_search_args *args, { struct mail_search_arg *arg; - arg = p_new(args->pool, struct mail_search_arg, 1); - arg->type = SEARCH_SEQSET; + arg = mail_search_build_add(args, SEARCH_SEQSET); + p_array_init(&arg->value.seqset, args->pool, 1); seq_range_array_add_range(&arg->value.seqset, seq1, seq2); - - arg->next = args->args; - args->args = arg; } diff --git a/src/lib-storage/mail-search-build.h b/src/lib-storage/mail-search-build.h index bfddf15ad1..bc08583bb4 100644 --- a/src/lib-storage/mail-search-build.h +++ b/src/lib-storage/mail-search-build.h @@ -25,6 +25,10 @@ int mail_search_build(struct mail_search_register *reg, struct mail_search_parser *parser, const char *charset, struct mail_search_args **args_r, const char **error_r); +/* Add new search arg with given type. */ +struct mail_search_arg * +mail_search_build_add(struct mail_search_args *args, + enum mail_search_arg_type type); /* Add SEARCH_ALL to search args. */ void mail_search_build_add_all(struct mail_search_args *args); /* Add a sequence set to search args. */