OSDN Git Service

Tweak help_exit() to show "See %s --help" message on the same line.
authorRob Landley <rob@landley.net>
Tue, 10 Oct 2017 23:16:08 +0000 (18:16 -0500)
committerRob Landley <rob@landley.net>
Tue, 10 Oct 2017 23:16:08 +0000 (18:16 -0500)
lib/lib.c
toys/other/sysctl.c

index fae7156..80570ed 100644 (file)
--- a/lib/lib.c
+++ b/lib/lib.c
@@ -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);
   }
 
index ad643c9..3773594 100644 (file)
@@ -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);
   }
 }