Cleanup pass on env, removing exec_optargs().
authorRob Landley <rob@landley.net>
Sat, 7 Feb 2015 22:23:03 +0000 (16:23 -0600)
committerRob Landley <rob@landley.net>
Sat, 7 Feb 2015 22:23:03 +0000 (16:23 -0600)
toys/posix/env.c

index 4e819f2..f20517e 100644 (file)
@@ -24,28 +24,17 @@ extern char **environ;
 void env_main(void)
 {
   char **ev;
-  char **command = NULL;
   char *del = "=";
 
   if (toys.optflags) clearenv();
 
   for (ev = toys.optargs; *ev != NULL; ev++) {
-    char *env, *val = NULL;
-
-    env = strtok(*ev, del);
-
-    if (env) val = strtok(NULL, del);
+    char *env = strtok(*ev, del), *val = 0;
 
+    if (env) val = strtok(0, del);
     if (val) setenv(env, val, 1);
-    else {
-      command = ev;
-      break;
-    }
+    else xexec(ev);
   }
 
-  if (!command) {
-    char **ep;
-    if (environ) for (ep = environ; *ep; ep++) xputs(*ep);
-  } else xexec_optargs(command - toys.optargs);
-
+  if (environ) for (ev = environ; *ev; ev++) xputs(*ev);
 }