Mercurial > hg > toybox
changeset 1501:c51a4dbe5db7 draft
Don't segfault for --help of single.sh build of OLDTOY commands that use another command's help.
author | Rob Landley <rob@landley.net> |
---|---|
date | Sat, 27 Sep 2014 19:58:18 -0500 |
parents | cf77c4939385 |
children | 84922376d15c |
files | lib/help.c main.c |
diffstat | 2 files changed, 8 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/lib/help.c Fri Sep 26 18:49:44 2014 -0500 +++ b/lib/help.c Sat Sep 27 19:58:18 2014 -0500 @@ -25,6 +25,11 @@ while (i--) s += strlen(s) + 1; // If it's an alias, restart search for real name if (*s != 255) break; + if (!CFG_TOYBOX) { + s = xmprintf("See %s --help\n", ++s); + + break; + } i = toy_find(++s)-toy_list; }
--- a/main.c Fri Sep 26 18:49:44 2014 -0500 +++ b/main.c Sat Sep 27 19:58:18 2014 -0500 @@ -26,6 +26,8 @@ { int top, bottom, middle; + if (!CFG_TOYBOX) return 0; + // If the name starts with "toybox" accept that as a match. Otherwise // skip the first entry, which is out of order. @@ -69,7 +71,7 @@ if (CFG_TOYBOX_I18N) setlocale(LC_ALL, "C"+!!(which->flags & TOYFLAG_LOCALE)); if (CFG_TOYBOX_HELP_DASHDASH && argv[1] && !strcmp(argv[1], "--help")) { - if (toys.which == toy_list && toys.argv[2]) + if (CFG_TOYBOX && toys.which == toy_list && toys.argv[2]) if (!(toys.which = toy_find(toys.argv[2]))) return; show_help(); xexit();