From bb1a7da5a76625640a5a207b19ed3abdb70c9617 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Wed, 5 Nov 2014 13:00:14 +0200 Subject: [PATCH] doveadm: Removed duplicate subcommands from list of commands. For example don't show "mailbox ..|metadata|metadata|metadata|.." --- src/doveadm/doveadm.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) 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; + } } } } -- 2.47.3