From: Timo Sirainen Date: Wed, 28 Apr 2010 20:18:36 +0000 (+0300) Subject: doveadm: Reduced code duplication. X-Git-Tag: 2.0.beta5~66 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=97afa073e3e1e0301dc41173ec34beb08edcce50;p=thirdparty%2Fdovecot%2Fcore.git doveadm: Reduced code duplication. --HG-- branch : HEAD --- diff --git a/src/doveadm/doveadm-mail-altmove.c b/src/doveadm/doveadm-mail-altmove.c index 12f0ad03d9..931d0da81f 100644 --- a/src/doveadm/doveadm-mail-altmove.c +++ b/src/doveadm/doveadm-mail-altmove.c @@ -5,25 +5,10 @@ #include "mail-index.h" #include "mail-storage.h" #include "mail-namespace.h" -#include "mail-search-build.h" -#include "mail-search-parser.h" +#include "mail-search.h" #include "doveadm-mail-list-iter.h" #include "doveadm-mail.h" -static struct mail_search_args *build_search_args(const char *const args[]) -{ - struct mail_search_parser *parser; - struct mail_search_args *sargs; - const char *error; - - parser = mail_search_parser_init_cmdline(args); - if (mail_search_build(mail_search_register_human, parser, "UTF-8", - &sargs, &error) < 0) - i_fatal("%s", error); - mail_search_parser_deinit(&parser); - return sargs; -} - static int cmd_altmove_box(struct mailbox *box, struct mail_search_args *search_args) { @@ -92,7 +77,7 @@ void cmd_altmove(struct mail_user *user, const char *const args[]) if (args[0] == NULL) doveadm_mail_help_name("altmove"); - search_args = build_search_args(args); + search_args = doveadm_mail_build_search_args(args); t_array_init(&purged_storages, 8); iter = doveadm_mail_list_iter_init(user, search_args, iter_flags); diff --git a/src/doveadm/doveadm-mail-fetch.c b/src/doveadm/doveadm-mail-fetch.c index 1e4d39b60c..f77f0dc36e 100644 --- a/src/doveadm/doveadm-mail-fetch.c +++ b/src/doveadm/doveadm-mail-fetch.c @@ -11,8 +11,7 @@ #include "imap-util.h" #include "mail-namespace.h" #include "mail-storage.h" -#include "mail-search-build.h" -#include "mail-search-parser.h" +#include "mail-search.h" #include "doveadm-mail.h" #include "doveadm-mail-list-iter.h" @@ -225,20 +224,6 @@ static const struct fetch_field fetch_fields[] = { { "date.saved", MAIL_FETCH_SAVE_DATE, fetch_date_saved } }; -static struct mail_search_args *build_search_args(const char *const args[]) -{ - struct mail_search_parser *parser; - struct mail_search_args *sargs; - const char *error; - - parser = mail_search_parser_init_cmdline(args); - if (mail_search_build(mail_search_register_human, parser, "UTF-8", - &sargs, &error) < 0) - i_fatal("%s", error); - mail_search_parser_deinit(&parser); - return sargs; -} - static const struct fetch_field *fetch_field_find(const char *name) { unsigned int i; @@ -345,7 +330,7 @@ void cmd_fetch(struct mail_user *user, const char *const args[]) if (fetch_fields == NULL || args[1] == NULL) doveadm_mail_help_name("fetch"); parse_fetch_fields(&ctx, fetch_fields); - ctx.search_args = build_search_args(args + 1); + ctx.search_args = doveadm_mail_build_search_args(args + 1); ctx.output = o_stream_create_fd(STDOUT_FILENO, 0, FALSE); diff --git a/src/doveadm/doveadm-mail.c b/src/doveadm/doveadm-mail.c index 21a2dc20b4..ae422781fd 100644 --- a/src/doveadm/doveadm-mail.c +++ b/src/doveadm/doveadm-mail.c @@ -11,6 +11,8 @@ #include "mail-storage.h" #include "mail-storage-settings.h" #include "mail-storage-service.h" +#include "mail-search-build.h" +#include "mail-search-parser.h" #include "doveadm.h" #include "doveadm-settings.h" #include "doveadm-mail.h" @@ -73,6 +75,21 @@ doveadm_mailbox_find_and_sync(struct mail_user *user, const char *mailbox) return box; } +struct mail_search_args * +doveadm_mail_build_search_args(const char *const args[]) +{ + struct mail_search_parser *parser; + struct mail_search_args *sargs; + const char *error; + + parser = mail_search_parser_init_cmdline(args); + if (mail_search_build(mail_search_register_human, parser, "UTF-8", + &sargs, &error) < 0) + i_fatal("%s", error); + mail_search_parser_deinit(&parser); + return sargs; +} + static void cmd_force_resync(struct mail_user *user, const char *const args[]) { const char *mailbox = args[0]; diff --git a/src/doveadm/doveadm-mail.h b/src/doveadm/doveadm-mail.h index 4af0a24ccb..2f6eb06f2e 100644 --- a/src/doveadm/doveadm-mail.h +++ b/src/doveadm/doveadm-mail.h @@ -29,6 +29,8 @@ void doveadm_mail_deinit(void); struct mailbox * doveadm_mailbox_find_and_sync(struct mail_user *user, const char *mailbox); +struct mail_search_args * +doveadm_mail_build_search_args(const char *const args[]); void cmd_fetch(struct mail_user *user, const char *const args[]); void cmd_altmove(struct mail_user *user, const char *const args[]);