]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
doveadm: Removed duplicate subcommands from list of commands.
authorTimo Sirainen <tss@iki.fi>
Wed, 5 Nov 2014 11:00:14 +0000 (13:00 +0200)
committerTimo Sirainen <tss@iki.fi>
Wed, 5 Nov 2014 11:00:14 +0000 (13:00 +0200)
For example don't show "mailbox ..|metadata|metadata|metadata|.."

src/doveadm/doveadm.c

index 41357b9a9895240a2cf87912a9fd6220390d9a26..eb6416ea6fbeadef567b4261e117f9a11a2d8f2c 100644 (file)
@@ -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;
+                               }
                        }
                }
        }