From 7f098e28ddad259d9fbe76e18347c722bb005189 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Wed, 28 Apr 2010 23:15:50 +0300 Subject: [PATCH] doveadm fetch: If invalid fetch field is given, print list of available fields. --HG-- branch : HEAD --- src/doveadm/doveadm-mail-fetch.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) 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); -- 2.47.3