From d06c58df5c723594c4f214dd5d1842a178d2a5e1 Mon Sep 17 00:00:00 2001 From: Rob Landley Date: Thu, 11 Oct 2007 15:36:36 -0500 Subject: Promote help to global config option, teach error_exit() to output usage message when called from get_optflags(). --- lib/args.c | 2 ++ lib/lib.c | 12 ++++++------ lib/lib.h | 1 - 3 files changed, 8 insertions(+), 7 deletions(-) (limited to 'lib') diff --git a/lib/args.c b/lib/args.c index 95643c3e..542b8cf0 100644 --- a/lib/args.c +++ b/lib/args.c @@ -133,6 +133,7 @@ void get_optflags(void) long *nextarg = (long *)&toy; char *options = toys.which->options; + if (CFG_HELP) toys.exithelp++; // Allocate memory for optargs maxargs = 0; while (toys.argv[maxargs++]); @@ -300,6 +301,7 @@ notflag: error_exit("Need %d argument%s", minargs, minargs ? "s" : ""); if (optarg>maxargs) error_exit("Max %d argument%s", maxargs, maxargs ? "s" : ""); + if (CFG_HELP) toys.exithelp = 0; } // Loop through files listed on the command line diff --git a/lib/lib.c b/lib/lib.c index 7cb29f8f..fe85c5fe 100644 --- a/lib/lib.c +++ b/lib/lib.c @@ -55,6 +55,12 @@ void error_exit(char *msg, ...) { va_list va; + if (CFG_HELP && toys.exithelp) { + *toys.optargs=*toys.argv; + help_main(); + fprintf(stderr,"\n"); + } + va_start(va, msg); verror_msg(msg, 0, va); va_end(va); @@ -75,12 +81,6 @@ void perror_exit(char *msg, ...) exit(toys.exitval); } -// Stub until the online help system goes in. -void usage_exit(void) -{ - exit(1); -} - // Die unless we can allocate memory. void *xmalloc(size_t size) { diff --git a/lib/lib.h b/lib/lib.h index 4cc2dac4..6fce34c8 100644 --- a/lib/lib.h +++ b/lib/lib.h @@ -45,7 +45,6 @@ void error_msg(char *msg, ...); void perror_msg(char *msg, ...); void error_exit(char *msg, ...); void perror_exit(char *msg, ...); -void usage_exit(void); void *xmalloc(size_t size); void *xzalloc(size_t size); void *xrealloc(void *ptr, size_t size); -- cgit v1.2.3