view lib/help.c @ 1187:18cc63376e66 draft

init: don't use VT_OPENQRY. The original codepath checks if there is a VT available, and if there isn't sets TERM to vt102 (unless TERM is set to something other than "linux"). Otherwise, TERM is set to "linux" if it is not already set. However, we can rely on getty/... to set TERM if "linux" is not suitable. This has the benefit of dropping a slightly messy section.
author Isaac Dunham <ibid.ag@gmail.com>
date Tue, 28 Jan 2014 17:46:14 -0600
parents c5e80c74ec6c
children c51a4dbe5db7
line wrap: on
line source

// Function to display help text

#include "toys.h"

#if !CFG_TOYBOX_HELP
void show_help(void) {;}
#else
#include "generated/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 "generated/newtoys.h"
;

void show_help(void)
{
  int i = toys.which-toy_list;
  char *s;

  for (;;) {
    s = help_data;
    while (i--) s += strlen(s) + 1;
    // If it's an alias, restart search for real name
    if (*s != 255) break;
    i = toy_find(++s)-toy_list;
  }

  fprintf(toys.exithelp ? stderr : stdout, "%s", s);
}
#endif