/* vi: set sw=4 ts=4: * * help.c - Show help for toybox * * Copyright 2007 Rob Landley * * Not in SUSv3, but exists as a bash builtin. USE_HELP(NEWTOY(help, "<1", TOYFLAG_BIN)) config HELP bool "help" default y help usage: help [command] Show usage information for toybox commands. Run "toybox" with no arguments for a list of available commands. */ #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); }