From ec5a6608ff88652fe1c5005d86930733425d1e7c Mon Sep 17 00:00:00 2001 From: Assar Westerlund Date: Sat, 19 Jul 1997 00:25:35 +0000 Subject: [PATCH] line-up help strings git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@2448 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/roken/getarg.c | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/lib/roken/getarg.c b/lib/roken/getarg.c index fa3d8f554..79e1552ad 100644 --- a/lib/roken/getarg.c +++ b/lib/roken/getarg.c @@ -70,17 +70,25 @@ arg_printusage (struct getargs *args, const char *extra_string) { int i; + size_t max_len = 0; fprintf (stderr, "Usage: %s", __progname); for (i = 0; i < num_args; ++i) { + size_t len = 0; + if (args[i].long_name) { + len += 2 + strlen(args[i].long_name); fprintf (stderr, " [--%s", args[i].long_name); print_arg (&args[i]); } if (args[i].short_name) { + len += 2; fprintf (stderr, " [-%c", args[i].short_name); print_arg (&args[i]); } + if (args[i].long_name && args[i].short_name) + len += 4; + max_len = max(max_len, len); } if (extra_string) fprintf (stderr, " %s\n", extra_string); @@ -88,14 +96,23 @@ arg_printusage (struct getargs *args, fprintf (stderr, "\n"); for (i = 0; i < num_args; ++i) { if (args[i].help) { + size_t count = 0; + if (args[i].short_name) { fprintf (stderr, "-%c", args[i].short_name); - if (args[i].long_name) - fprintf (stderr, " or "); + count += 2; } - if (args[i].long_name) + if (args[i].short_name && args[i].long_name) { + fprintf (stderr, " or "); + count += 4; + } + if (args[i].long_name) { fprintf (stderr, "--%s", args[i].long_name); - fprintf (stderr, "\t%s\n", args[i].help); + count += 2 + strlen(args[i].long_name); + } + while(count++ <= max_len) + putc (' ', stderr); + fprintf (stderr, "%s\n", args[i].help); } } }