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. --- lib/help.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 lib/help.c (limited to 'lib/help.c') diff --git a/lib/help.c b/lib/help.c new file mode 100644 index 00000000..f7a326a8 --- /dev/null +++ b/lib/help.c @@ -0,0 +1,33 @@ +// Function to display help text + +#include "toys.h" + +#if !CFG_TOYBOX_HELP +void show_help(char *command) {;} +#else +#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 show_help(void) +{ + int i = toys.which-toy_list; + char *s; + + for (;;) { + s = help_data; + while (i--) s += strlen(s) + 1; + // If it's an alias, restart search for real name + if (*s != 255) break; + i = toy_find(++s)-toy_list; + } + + fprintf(toys.exithelp ? stderr : stdout, "%s", s); +} +#endif -- cgit v1.2.3