diff options
author | Rob Landley <rob@landley.net> | 2013-04-14 21:43:22 -0500 |
---|---|---|
committer | Rob Landley <rob@landley.net> | 2013-04-14 21:43:22 -0500 |
commit | 36ffc5aa3e6bfcab5d628208f4f1508f9b1c2620 (patch) | |
tree | 02fa7a68fe53808c79ce72f9ba21beb0b9908214 /toys | |
parent | 26c0045a6eb061e180f58b6b4c029a5df5a2818e (diff) | |
download | toybox-36ffc5aa3e6bfcab5d628208f4f1508f9b1c2620.tar.gz |
Move guts of help command into show_help() in lib/help.c, with config TOYBOX_HELP controlling infrastructure.
Diffstat (limited to 'toys')
-rw-r--r-- | toys/other/help.c | 22 | ||||
-rw-r--r-- | toys/other/losetup.c | 2 |
2 files changed, 4 insertions, 20 deletions
diff --git a/toys/other/help.c b/toys/other/help.c index 68bc3aab..e16abaab 100644 --- a/toys/other/help.c +++ b/toys/other/help.c @@ -9,6 +9,7 @@ USE_HELP(NEWTOY(help, "<1", TOYFLAG_BIN)) config HELP bool "help" default y + depends on TOYBOX_HELP help usage: help [command] @@ -18,29 +19,12 @@ config HELP #include "toys.h" -#include "generated/help.h" - -#undef NEWTOY -#undef OLDTOY -#define NEWTOY(name,opt,flags) help_##name "\0" -#define OLDTOY(name,oldname,opts,flags) "\xff" #oldname "\0" -static char *help_data = -#include "generated/newtoys.h" -; void help_main(void) { struct toy_list *t = toy_find(*toys.optargs); - int i = t-toy_list; - char *s = help_data; if (!t) error_exit("Unknown command '%s'", *toys.optargs); - for (;;) { - while (i--) s += strlen(s) + 1; - if (*s != 255) break; - i = toy_find(++s)-toy_list; - s = help_data; - } - - fprintf(toys.exithelp ? stderr : stdout, "%s", s); + toys.which = t; + show_help(); } diff --git a/toys/other/losetup.c b/toys/other/losetup.c index c21e840b..618016e1 100644 --- a/toys/other/losetup.c +++ b/toys/other/losetup.c @@ -180,7 +180,7 @@ void losetup_main(void) char *file = (toys.optflags & (FLAG_d|FLAG_c)) ? NULL : toys.optargs[1]; if (!toys.optc || (file && toys.optc>1)) { - if (CFG_HELP) toys.exithelp++; + toys.exithelp++; perror_exit("needs 1 arg"); } for (s = toys.optargs; *s; s++) loopback_setup(*s, file); |