blob: d0185678a15cd57d06f221b5ac3e330437b5dade [file] [log] [blame]
Rob Landley36ffc5a2013-04-14 21:43:22 -05001// Function to display help text
2
3#include "toys.h"
4
Rob Landley36ffc5a2013-04-14 21:43:22 -05005#include "generated/help.h"
6
7#undef NEWTOY
8#undef OLDTOY
Rob Landley187649d2016-02-10 23:06:12 -06009#define NEWTOY(name,opt,flags) HELP_##name "\0"
Rob Landley9c3789a2016-05-25 12:56:56 -050010#if CFG_TOYBOX
Rob Landleyf3e56f42014-12-31 21:30:59 -060011#define OLDTOY(name,oldname,flags) "\xff" #oldname "\0"
Rob Landley9c3789a2016-05-25 12:56:56 -050012#else
13#define OLDTOY(name, oldname, flags) HELP_##oldname "\0"
14#endif
Rob Landley36ffc5a2013-04-14 21:43:22 -050015static char *help_data =
16#include "generated/newtoys.h"
17;
18
Rob Landleye5354ca2015-09-11 16:35:14 -050019void show_help(FILE *out)
Rob Landley36ffc5a2013-04-14 21:43:22 -050020{
21 int i = toys.which-toy_list;
22 char *s;
23
Rob Landley0c8a66e2016-09-04 17:18:31 -050024 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 Landley36ffc5a2013-04-14 21:43:22 -050032
Rob Landley0c8a66e2016-09-04 17:18:31 -050033 fprintf(out, "%s", s);
34 }
Rob Landley36ffc5a2013-04-14 21:43:22 -050035}