From: Timo Sirainen Date: Wed, 28 Apr 2010 20:15:50 +0000 (+0300) Subject: doveadm fetch: If invalid fetch field is given, print list of available fields. X-Git-Tag: 2.0.beta5~67 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7f098e28ddad259d9fbe76e18347c722bb005189;p=thirdparty%2Fdovecot%2Fcore.git doveadm fetch: If invalid fetch field is given, print list of available fields. --HG-- branch : HEAD --- diff --git a/src/doveadm/doveadm-mail-fetch.c b/src/doveadm/doveadm-mail-fetch.c index 62c0704791..1e4d39b60c 100644 --- a/src/doveadm/doveadm-mail-fetch.c +++ b/src/doveadm/doveadm-mail-fetch.c @@ -16,6 +16,8 @@ #include "doveadm-mail.h" #include "doveadm-mail-list-iter.h" +#include + struct fetch_context { struct mail_search_args *search_args; struct ostream *output; @@ -248,6 +250,16 @@ static const struct fetch_field *fetch_field_find(const char *name) return NULL; } +static void print_fetch_fields(void) +{ + unsigned int i; + + fprintf(stderr, "Available fetch fields: %s", fetch_fields[0].name); + for (i = 1; i < N_ELEMENTS(fetch_fields); i++) + fprintf(stderr, " %s", fetch_fields[i].name); + fprintf(stderr, "\n"); +} + static void parse_fetch_fields(struct fetch_context *ctx, const char *str) { const char *const *fields, *name; @@ -259,8 +271,10 @@ static void parse_fetch_fields(struct fetch_context *ctx, const char *str) name = t_str_lcase(*fields); field = fetch_field_find(name); - if (field == NULL) + if (field == NULL) { + print_fetch_fields(); i_fatal("Unknown fetch field: %s", name); + } ctx->wanted_fields |= field->wanted_fields; array_append(&ctx->fields, field, 1);