print arguments in long usage as well.

extend test


git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@2451 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Assar Westerlund
1997-07-19 00:59:51 +00:00
parent c1e4dfeb1a
commit daf3b9e2d5

View File

@@ -45,20 +45,27 @@ RCSID("$Id$");
#include <roken.h> #include <roken.h>
#include "getarg.h" #include "getarg.h"
static void static size_t
print_arg (struct getargs *arg) print_arg (int longp, struct getargs *arg)
{ {
switch (arg->type) { switch (arg->type) {
case arg_integer: case arg_integer:
fprintf (stderr, " n]"); if (longp) {
break; fprintf (stderr, "=n");
} else {
fprintf (stderr, " n");
}
return 2;
case arg_string: case arg_string:
fprintf (stderr, " s]"); if (longp) {
break; fprintf (stderr, "=s");
} else {
fprintf (stderr, " s");
}
return 2;
case arg_flag: case arg_flag:
case arg_negative_flag: case arg_negative_flag:
fprintf (stderr, "]"); return 0;
break;
default: default:
abort (); abort ();
} }
@@ -79,12 +86,14 @@ arg_printusage (struct getargs *args,
if (args[i].long_name) { if (args[i].long_name) {
len += 2 + strlen(args[i].long_name); len += 2 + strlen(args[i].long_name);
fprintf (stderr, " [--%s", args[i].long_name); fprintf (stderr, " [--%s", args[i].long_name);
print_arg (&args[i]); len += print_arg (1, &args[i]);
putc (']', stderr);
} }
if (args[i].short_name) { if (args[i].short_name) {
len += 2; len += 2;
fprintf (stderr, " [-%c", args[i].short_name); fprintf (stderr, " [-%c", args[i].short_name);
print_arg (&args[i]); len += print_arg (0, &args[i]);
putc (']', stderr);
} }
if (args[i].long_name && args[i].short_name) if (args[i].long_name && args[i].short_name)
len += 4; len += 4;
@@ -101,6 +110,7 @@ arg_printusage (struct getargs *args,
if (args[i].short_name) { if (args[i].short_name) {
fprintf (stderr, "-%c", args[i].short_name); fprintf (stderr, "-%c", args[i].short_name);
count += 2; count += 2;
count += print_arg (0, &args[i]);
} }
if (args[i].short_name && args[i].long_name) { if (args[i].short_name && args[i].long_name) {
fprintf (stderr, " or "); fprintf (stderr, " or ");
@@ -109,6 +119,7 @@ arg_printusage (struct getargs *args,
if (args[i].long_name) { if (args[i].long_name) {
fprintf (stderr, "--%s", args[i].long_name); fprintf (stderr, "--%s", args[i].long_name);
count += 2 + strlen(args[i].long_name); count += 2 + strlen(args[i].long_name);
count += print_arg (1, &args[i]);
} }
while(count++ <= max_len) while(count++ <= max_len)
putc (' ', stderr); putc (' ', stderr);
@@ -282,11 +293,11 @@ int bar_int;
char *baz_string; char *baz_string;
struct getargs args[] = { struct getargs args[] = {
{ NULL, '1', arg_flag, &flag1, NULL }, { NULL, '1', arg_flag, &flag1, "one" },
{ NULL, '2', arg_flag, &flag2, NULL }, { NULL, '2', arg_flag, &flag2, "two" },
{ "foo", 'f', arg_flag, &foo_flag, NULL }, { "foo", 'f', arg_flag, &foo_flag, "foo" },
{ "bar", 'b', arg_integer, &bar_int, NULL }, { "bar", 'b', arg_integer, &bar_int, "bar" },
{ "baz", 'x', arg_string, &baz_string, NULL }, { "baz", 'x', arg_string, &baz_string, "baz" },
}; };
int main(int argc, char **argv) int main(int argc, char **argv)
@@ -299,5 +310,6 @@ int main(int argc, char **argv)
printf("foo_flag = %d\n", foo_flag); printf("foo_flag = %d\n", foo_flag);
printf("bar_int = %d\n", bar_int); printf("bar_int = %d\n", bar_int);
printf("baz_flag = %s\n", baz_string); printf("baz_flag = %s\n", baz_string);
arg_printusage (args, 5, "nothing here");
} }
#endif #endif