Mercurial > hg > toybox
changeset 121:933766b0bd4b
Allow applets with optarg string NULL to use toy.optargs[].
author | Rob Landley <rob@landley.net> |
---|---|
date | Fri, 01 Jun 2007 13:41:24 -0400 |
parents | 4dc8017fdb0e |
children | ee49aa0dc731 |
files | main.c toys/toysh.c |
diffstat | 2 files changed, 6 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/main.c Fri Jun 01 11:46:56 2007 -0400 +++ b/main.c Fri Jun 01 13:41:24 2007 -0400 @@ -58,18 +58,19 @@ toys.argv = argv; toys.exitval = 1; if (which->options) get_optflags(); + else toys.optargs = argv+1; } // Run a toy. void toy_exec(char *argv[]) { struct toy_list *which; - + which = toy_find(argv[0]); if (!which) return; toy_init(which, argv); - + exit(toys.which->toy_main()); }
--- a/toys/toysh.c Fri Jun 01 11:46:56 2007 -0400 +++ b/toys/toysh.c Fri Jun 01 13:41:24 2007 -0400 @@ -184,14 +184,14 @@ int cd_main(void) { - char *dest = toys.argv[1] ? toys.argv[1]: getenv("HOME"); + char *dest = *toys.optargs ? *toys.optargs : getenv("HOME"); if (chdir(dest)) error_exit("chdir %s",dest); return 0; } int exit_main(void) { - exit(toys.argv[1] ? atoi(toys.argv[1]) : 0); + exit(*toys.optargs ? atoi(*toys.optargs) : 0); } int toysh_main(void) @@ -203,7 +203,7 @@ if (CFG_TOYSH_TTY) { if (isatty(0)) toys.optflags |= 1; } - f = toys.argv[1] ? xfopen(toys.argv[1], "r") : NULL; + f = *toys.optargs ? xfopen(*toys.optargs, "r") : NULL; if (command) handle(command); else { unsigned cmdlen=0;