/* vi: set sw=4 ts=4: */
/*
 * help.c - Show help for toybox
 *
 * Not in SUSv3, but exists as a bash builtin.
 */

#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"
;

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);
}
