From: Timo Sirainen Date: Wed, 5 Nov 2014 11:00:14 +0000 (+0200) Subject: doveadm: Removed duplicate subcommands from list of commands. X-Git-Tag: 2.2.16.rc1~253 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=bb1a7da5a76625640a5a207b19ed3abdb70c9617;p=thirdparty%2Fdovecot%2Fcore.git doveadm: Removed duplicate subcommands from list of commands. For example don't show "mailbox ..|metadata|metadata|metadata|.." --- diff --git a/src/doveadm/doveadm.c b/src/doveadm/doveadm.c index 41357b9a98..eb6416ea6f 100644 --- a/src/doveadm/doveadm.c +++ b/src/doveadm/doveadm.c @@ -54,7 +54,8 @@ void doveadm_register_cmd(const struct doveadm_cmd *cmd) static void doveadm_usage_compress_lines(FILE *out, const char *str, const char *prefix) { - const char *cmd, *args, *p, *short_name, *prev_name = ""; + const char *cmd, *args, *p, *short_name, *sub_name; + const char *prev_name = "", *prev_sub_name = ""; const char **lines; unsigned int i, count, prefix_len = strlen(prefix); @@ -97,8 +98,13 @@ doveadm_usage_compress_lines(FILE *out, const char *str, const char *prefix) fprintf(out, USAGE_CMDNAME_FMT" %s", short_name, t_strcut(p + 1, ' ')); prev_name = short_name; + prev_sub_name = ""; } else { - fprintf(out, "|%s", t_strcut(p + 1, ' ')); + sub_name = t_strcut(p + 1, ' '); + if (strcmp(prev_sub_name, sub_name) != 0) { + fprintf(out, "|%s", sub_name); + prev_sub_name = sub_name; + } } } }