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