Rob Landley | 36ffc5a | 2013-04-14 21:43:22 -0500 | [diff] [blame] | 1 | // Function to display help text |
| 2 | |
| 3 | #include "toys.h" |
| 4 | |
| 5 | #if !CFG_TOYBOX_HELP |
Rob Landley | 7a1f582 | 2013-04-29 10:53:09 -0500 | [diff] [blame] | 6 | void show_help(void) {;} |
Rob Landley | 36ffc5a | 2013-04-14 21:43:22 -0500 | [diff] [blame] | 7 | #else |
| 8 | #include "generated/help.h" |
| 9 | |
| 10 | #undef NEWTOY |
| 11 | #undef OLDTOY |
| 12 | #define NEWTOY(name,opt,flags) help_##name "\0" |
Rob Landley | f3e56f4 | 2014-12-31 21:30:59 -0600 | [diff] [blame] | 13 | #define OLDTOY(name,oldname,flags) "\xff" #oldname "\0" |
Rob Landley | 36ffc5a | 2013-04-14 21:43:22 -0500 | [diff] [blame] | 14 | static char *help_data = |
| 15 | #include "generated/newtoys.h" |
| 16 | ; |
| 17 | |
| 18 | void show_help(void) |
| 19 | { |
| 20 | int i = toys.which-toy_list; |
| 21 | char *s; |
| 22 | |
| 23 | for (;;) { |
| 24 | s = help_data; |
| 25 | while (i--) s += strlen(s) + 1; |
| 26 | // If it's an alias, restart search for real name |
| 27 | if (*s != 255) break; |
Rob Landley | dc1af18 | 2014-09-27 19:58:18 -0500 | [diff] [blame] | 28 | if (!CFG_TOYBOX) { |
| 29 | s = xmprintf("See %s --help\n", ++s); |
| 30 | |
| 31 | break; |
| 32 | } |
Rob Landley | 36ffc5a | 2013-04-14 21:43:22 -0500 | [diff] [blame] | 33 | i = toy_find(++s)-toy_list; |
| 34 | } |
| 35 | |
| 36 | fprintf(toys.exithelp ? stderr : stdout, "%s", s); |
| 37 | } |
| 38 | #endif |