Allow applets with optarg string NULL to use toy.optargs[].
diff --git a/main.c b/main.c
index 56d6eb3..3a50f39 100644
--- a/main.c
+++ b/main.c
@@ -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());
 }
 
diff --git a/toys/toysh.c b/toys/toysh.c
index ef061bd..a42d361 100644
--- a/toys/toysh.c
+++ b/toys/toysh.c
@@ -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;