From 36ffc5aa3e6bfcab5d628208f4f1508f9b1c2620 Mon Sep 17 00:00:00 2001 From: Rob Landley Date: Sun, 14 Apr 2013 21:43:22 -0500 Subject: Move guts of help command into show_help() in lib/help.c, with config TOYBOX_HELP controlling infrastructure. --- toys/other/help.c | 22 +++------------------- toys/other/losetup.c | 2 +- 2 files changed, 4 insertions(+), 20 deletions(-) (limited to 'toys') 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); -- cgit v1.2.3