diff options
-rw-r--r-- | ChangeLog.txt | 4 | ||||
-rw-r--r-- | pseudo.1 | 11 | ||||
-rw-r--r-- | pseudo.c | 21 | ||||
-rw-r--r-- | pseudolog.1 | 7 |
4 files changed, 33 insertions, 10 deletions
diff --git a/ChangeLog.txt b/ChangeLog.txt index 138e54c..eb14704 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -1,3 +1,7 @@ +2010-03-17: + * (seebs) fixup help options + * (seebs) use strerror() in a couple more places + 2010-03-16: * (seebs) Fix missing error checking noted by comp.lang.c reader. @@ -23,6 +23,8 @@ .RB [ \-t\ timeout ] .RB [ command ] .PP +.B pseudo \-h +.PP .B pseudo .RB [ \-P\ prefix ] .B \-S @@ -64,9 +66,16 @@ can then start the server automatically. The .I pseudo -command can be invoked in one of four possible modes: +command can be invoked in one of five possible modes: .TP 8 +.B \-h +The +.B \-h +option causes +.I pseudo +to print a usage message and exit. +.TP 8 .B \-V The .B \-V @@ -47,11 +47,13 @@ int opt_S = 0; static int pseudo_op(pseudo_msg_t *msg, const char *tag); void -usage(void) { - pseudo_diag("Usage: pseudo [-dflv] [-P prefix] [-t timeout] [command]\n"); - pseudo_diag(" pseudo [-dflv] [-P prefix] -S\n"); - pseudo_diag(" pseudo [-dflv] [-P prefix] -V\n"); - exit(1); +usage(int status) { + FILE *f = status ? stderr : stdout; + fputs("Usage: pseudo [-dflv] [-P prefix] [-t timeout] [command]\n", f); + fputs(" pseudo -h\n", f); + fputs(" pseudo [-dflv] [-P prefix] -S\n", f); + fputs(" pseudo [-dflv] [-P prefix] -V\n", f); + exit(status); } /* main server process */ @@ -92,7 +94,7 @@ main(int argc, char *argv[]) { * wrong. The + suppresses this annoying behavior, but may not * be compatible with sane option libraries. */ - while ((o = getopt(argc, argv, "+dflP:St:vV")) != -1) { + while ((o = getopt(argc, argv, "+dfhlP:St:vV")) != -1) { switch (o) { case 'd': /* run as daemon */ @@ -102,6 +104,9 @@ main(int argc, char *argv[]) { /* run foregrounded */ opt_f = 1; break; + case 'h': + usage(0); + break; case 'l': optptr += snprintf(optptr, PATH_MAX - (optptr - opts), "%s-l", optptr > opts ? " " : ""); @@ -117,7 +122,7 @@ main(int argc, char *argv[]) { pseudo_server_timeout = strtol(optarg, &s, 10); if (*s && !isspace(*s)) { pseudo_diag("Timeout must be an integer value.\n"); - usage(); + usage(EXIT_FAILURE); } optptr += snprintf(optptr, PATH_MAX - (optptr - opts), "%s-t %d", optptr > opts ? " " : "", @@ -136,7 +141,7 @@ main(int argc, char *argv[]) { break; case '?': pseudo_diag("unknown/invalid argument (option '%c').\n", optopt); - usage(); + usage(EXIT_FAILURE); break; } } diff --git a/pseudolog.1 b/pseudolog.1 index 6bb0bd9..21b2908 100644 --- a/pseudolog.1 +++ b/pseudolog.1 @@ -17,7 +17,7 @@ .\" Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA .TH pseudolog 1 "pseudo - pretending to be root" .SH SYNOPSIS -.B pseudolog -l +.B pseudolog \-l .RB [ \-Pv ] [ .B \-E @@ -35,6 +35,8 @@ .B \-F .I format ] +.PP +.B pseudolog \-h .RI [ SPECIFICATIONS ] .SH DESCRIPTION The @@ -54,6 +56,9 @@ section below. The following other options are supported: .TP 8 +.B \-h +Print a usage message and exit. +.TP 8 .B \-D Restrict query output to distinct rows. Rows will have members defined by the |