diff options
-rw-r--r-- | lib/lib.c | 12 | ||||
-rw-r--r-- | toys/other/sysctl.c | 2 |
2 files changed, 7 insertions, 7 deletions
@@ -12,7 +12,9 @@ void verror_msg(char *msg, int err, va_list va) fprintf(stderr, "%s: ", toys.which->name); if (msg) vfprintf(stderr, msg, va); else s+=2; - if (err) fprintf(stderr, s, strerror(err)); + if (err>0) fprintf(stderr, s, strerror(err)); + if (err<0 && CFG_TOYBOX_HELP) + fprintf(stderr, " (See \"%s --help\")", toys.which->name); if (msg || err) putc('\n', stderr); if (!toys.exitval) toys.exitval++; } @@ -66,12 +68,10 @@ void help_exit(char *msg, ...) { va_list va; - if (CFG_TOYBOX_HELP) - fprintf(stderr, "See %s --help\n", toys.which->name); - - if (msg) { + if (!msg) show_help(stdout); + else { va_start(va, msg); - verror_msg(msg, 0, va); + verror_msg(msg, -1, va); va_end(va); } diff --git a/toys/other/sysctl.c b/toys/other/sysctl.c index ad643c92..37735942 100644 --- a/toys/other/sysctl.c +++ b/toys/other/sysctl.c @@ -149,7 +149,7 @@ void sysctl_main() // Loop through arguments, displaying or assigning as appropriate } else { - if (!*toys.optargs) help_exit(0); + if (!*toys.optargs) help_exit("Needs 1 arg"); for (args = toys.optargs; *args; args++) process_key(*args, 0); } } |