diff options
author | Rob Landley <rob@landley.net> | 2007-08-29 08:10:01 -0500 |
---|---|---|
committer | Rob Landley <rob@landley.net> | 2007-08-29 08:10:01 -0500 |
commit | 7ecedea509f9a5484d122c3c430d84954cb7c811 (patch) | |
tree | fdfdb4cf7a179303376b659a8e6ec2e3ac8ac227 /toys/help.c | |
parent | 6ed92f34c01157e03a9afdc6dc1822875cf0d615 (diff) | |
download | toybox-7ecedea509f9a5484d122c3c430d84954cb7c811.tar.gz |
Add "help" command. (Building help/help.h requires python, but I'll ship
that file with release versions.)
Diffstat (limited to 'toys/help.c')
-rw-r--r-- | toys/help.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/toys/help.c b/toys/help.c new file mode 100644 index 00000000..6af743fc --- /dev/null +++ b/toys/help.c @@ -0,0 +1,33 @@ +/* vi: set sw=4 ts=4: */ +/* + * help.c - Show help for toybox + */ + +#include "toys.h" +#include "toys/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 "toys/toylist.h" +; + +int 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'\n", *toys.optargs); + for (;;) { + while (i--) s += strlen(s) + 1; + if (*s != 255) break; + i = toy_find(++s)-toy_list; + s = help_data; + } + + printf("%s", s); + return 0; +} |