Make toy_exec() check if argc is in optargs and deal with it there so we don't need a separate xexec_optargs().
diff --git a/main.c b/main.c
index 7f74549..458d470 100644
--- a/main.c
+++ b/main.c
@@ -127,6 +127,9 @@
 {
   struct toy_list *which;
 
+  // don't blank old optargs if our new argc lives in the old optargs.
+  if (argv>=toys.optargs && argv<=toys.optargs+toys.optc) toys.optargs = 0;
+
   // Return if we can't find it, or need to re-exec to acquire root,
   // or if stack depth is getting silly.
   if (!(which = toy_find(argv[0]))) return;