OSDN Git Service

Add TOYFLAG_NOHELP to disable --help processing for individual commands,
authorRob Landley <rob@landley.net>
Sat, 13 Aug 2016 22:50:54 +0000 (17:50 -0500)
committerRob Landley <rob@landley.net>
Sat, 13 Aug 2016 22:50:54 +0000 (17:50 -0500)
apply it to "true" and "false".

lib/toyflags.h
main.c
toys/posix/false.c
toys/posix/true.c

index 963295c..e809901 100644 (file)
@@ -25,3 +25,6 @@
 // Call setlocale to listen to environment variables.
 // This invalidates sprintf("%.*s", size, string) as a valid length constraint.
 #define TOYFLAG_LOCALE   (1<<8)
+
+// Suppress default --help processing
+#define TOYFLAG_NOHELP   (1<<9)
diff --git a/main.c b/main.c
index 31e51b1..c0c1b82 100644 (file)
--- a/main.c
+++ b/main.c
@@ -75,7 +75,9 @@ static void toy_singleinit(struct toy_list *which, char *argv[])
 
   if (CFG_TOYBOX_I18N) setlocale(LC_ALL, "C"+!!(which->flags & TOYFLAG_LOCALE));
 
-  if (CFG_TOYBOX_HELP_DASHDASH && argv[1] && !strcmp(argv[1], "--help")) {
+  if (CFG_TOYBOX_HELP_DASHDASH && !(which->flags & TOYFLAG_NOHELP)
+    && argv[1] && !strcmp(argv[1], "--help"))
+  {
     if (CFG_TOYBOX && toys.which == toy_list && toys.argv[2])
       if (!(toys.which = toy_find(toys.argv[2]))) return;
     show_help(stdout);
index 73458be..0853b01 100644 (file)
@@ -4,7 +4,7 @@
  *
  * See http://opengroup.org/onlinepubs/9699919799/utilities/false.html
 
-USE_FALSE(NEWTOY(false, NULL, TOYFLAG_BIN))
+USE_FALSE(NEWTOY(false, NULL, TOYFLAG_BIN|TOYFLAG_NOHELP))
 
 config FALSE
   bool "false"
index 0fbb178..2543b82 100644 (file)
@@ -4,8 +4,8 @@
  *
  * See http://opengroup.org/onlinepubs/9699919799/utilities/true.html
 
-USE_TRUE(NEWTOY(true, NULL, TOYFLAG_BIN))
-USE_TRUE(OLDTOY(:, true, TOYFLAG_NOFORK))
+USE_TRUE(NEWTOY(true, NULL, TOYFLAG_BIN|TOYFLAG_NOHELP))
+USE_TRUE(OLDTOY(:, true, TOYFLAG_NOFORK|TOYFLAG_NOHELP))
 
 config TRUE
   bool "true"