From 5991f0956525a49e8c8139cf8e450ccd96b60e53 Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Thu, 20 Jun 2013 22:01:42 +0200 Subject: charon-cmd: Use fixed number of character to align command descriptions If the command and argument is longer than that write the first line of description to the following line. --- src/charon-cmd/charon-cmd.c | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) (limited to 'src/charon-cmd/charon-cmd.c') diff --git a/src/charon-cmd/charon-cmd.c b/src/charon-cmd/charon-cmd.c index d35847d25..f3059bea5 100644 --- a/src/charon-cmd/charon-cmd.c +++ b/src/charon-cmd/charon-cmd.c @@ -204,15 +204,9 @@ static void segv_handler(int signal) */ static void usage(FILE *out, char *msg, char *binary) { - char *pre, *post; - int i, line, padto = 0, spacing = 2; - - for (i = 0; i < CMD_OPT_COUNT; i++) - { - padto = max(padto, strlen(cmd_options[i].name) + - strlen(cmd_options[i].arg)); - } - padto += spacing; + static const int padto = 18; + char cmd[64], *pre, *post; + int i, line, pad; if (msg) { @@ -237,17 +231,22 @@ static void usage(FILE *out, char *msg, char *binary) post = " "; break; } - fprintf(out, " --%s%s%s%s %-*s%s\n", - cmd_options[i].name, - pre, cmd_options[i].arg, post, - padto - strlen(cmd_options[i].name) - strlen(cmd_options[i].arg), "", - cmd_options[i].desc); + snprintf(cmd, sizeof(cmd), " --%s%s%s%s", cmd_options[i].name, + pre, cmd_options[i].arg, post); + pad = padto - strlen(cmd); + if (pad >= 1) + { + fprintf(out, "%s%-*s%s\n", cmd, pad, "", cmd_options[i].desc); + } + else + { /* write description to a separate line */ + fprintf(out, "%s\n%-*s%s\n", cmd, padto, "", cmd_options[i].desc); + } for (line = 0; line < countof(cmd_options[i].lines); line++) { if (cmd_options[i].lines[line]) { - fprintf(out, "%-*s %s\n", - padto, "", cmd_options[i].lines[line]); + fprintf(out, "%-*s%s\n", padto, "", cmd_options[i].lines[line]); } } } -- cgit v1.2.3