From 767431e5084a037c4dbefdf30ebfa03c84b1f449 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Fri, 28 May 2010 15:24:55 +0100 Subject: [PATCH] doveadm help and without parameters now writes output to stdout, otherwise stderr. --HG-- branch : HEAD --- src/doveadm/doveadm-mail.c | 8 ++++---- src/doveadm/doveadm-mail.h | 3 ++- src/doveadm/doveadm.c | 20 +++++++++++++------- 3 files changed, 19 insertions(+), 12 deletions(-) diff --git a/src/doveadm/doveadm-mail.c b/src/doveadm/doveadm-mail.c index 3201ab77d0..ac3db1f478 100644 --- a/src/doveadm/doveadm-mail.c +++ b/src/doveadm/doveadm-mail.c @@ -446,15 +446,15 @@ void doveadm_mail_register_cmd(const struct doveadm_mail_cmd *cmd) array_append(&doveadm_mail_cmds, cmd, 1); } -void doveadm_mail_usage(void) +void doveadm_mail_usage(FILE *out) { const struct doveadm_mail_cmd *cmd; array_foreach(&doveadm_mail_cmds, cmd) { - fprintf(stderr, USAGE_CMDNAME_FMT" [-u |-A]", cmd->name); + fprintf(out, USAGE_CMDNAME_FMT" [-u |-A]", cmd->name); if (cmd->usage_args != NULL) - fprintf(stderr, " %s", cmd->usage_args); - fputc('\n', stderr); + fprintf(out, " %s", cmd->usage_args); + fputc('\n', out); } } diff --git a/src/doveadm/doveadm-mail.h b/src/doveadm/doveadm-mail.h index bd629b5ba6..585da3945f 100644 --- a/src/doveadm/doveadm-mail.h +++ b/src/doveadm/doveadm-mail.h @@ -1,6 +1,7 @@ #ifndef DOVEADM_MAIL_H #define DOVEADM_MAIL_H +#include #include "doveadm.h" #include "module-context.h" @@ -56,7 +57,7 @@ extern struct doveadm_mail_cmd_module_register doveadm_mail_cmd_module_register; bool doveadm_mail_try_run(const char *cmd_name, int argc, char *argv[]); void doveadm_mail_register_cmd(const struct doveadm_mail_cmd *cmd); -void doveadm_mail_usage(void); +void doveadm_mail_usage(FILE *out); void doveadm_mail_help(const struct doveadm_mail_cmd *cmd) ATTR_NORETURN; void doveadm_mail_help_name(const char *cmd_name) ATTR_NORETURN; void doveadm_mail_try_help_name(const char *cmd_name); diff --git a/src/doveadm/doveadm.c b/src/doveadm/doveadm.c index cc8f3aa0b0..737d1b577a 100644 --- a/src/doveadm/doveadm.c +++ b/src/doveadm/doveadm.c @@ -25,20 +25,26 @@ void doveadm_register_cmd(const struct doveadm_cmd *cmd) array_append(&doveadm_cmds, cmd, 1); } -void usage(void) +static void ATTR_NORETURN +usage_to(FILE *out) { const struct doveadm_cmd *cmd; - fprintf(stderr, "usage: doveadm [-Dv] []\n"); + fprintf(out, "usage: doveadm [-Dv] []\n"); array_foreach(&doveadm_cmds, cmd) { - fprintf(stderr, USAGE_CMDNAME_FMT" %s\n", + fprintf(out, USAGE_CMDNAME_FMT" %s\n", cmd->name, cmd->short_usage); } - doveadm_mail_usage(); + doveadm_mail_usage(out); exit(1); } +void usage(void) +{ + usage_to(stderr); +} + void help(const struct doveadm_cmd *cmd) { fprintf(stderr, "doveadm %s %s\n", cmd->name, cmd->short_usage); @@ -80,7 +86,7 @@ static void cmd_help(int argc, char *argv[]) int i; if (argv[1] == NULL) - usage(); + usage_to(stdout); name = t_str_new(100); for (i = 1; i < argc; i++) { @@ -94,7 +100,7 @@ static void cmd_help(int argc, char *argv[]) str_append_c(name, ' '); } - usage(); + usage_to(stdout); } static struct doveadm_cmd doveadm_cmd_help = { @@ -239,7 +245,7 @@ int main(int argc, char *argv[]) doveadm_load_modules(); if (optind == argc) - usage(); + usage_to(stdout); cmd_name = argv[optind]; argc -= optind; -- 2.47.3