From 543b2580c78c0f6ed12630d9e63a0420d37b8348 Mon Sep 17 00:00:00 2001 From: Rob Landley Date: Sat, 20 Apr 2019 03:05:07 -0500 Subject: Add xunsetenv() for the error checking. --- toys/posix/env.c | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) (limited to 'toys/posix') diff --git a/toys/posix/env.c b/toys/posix/env.c index d1bb580d..3a251334 100644 --- a/toys/posix/env.c +++ b/toys/posix/env.c @@ -40,18 +40,11 @@ void env_main(void) } if (FLAG(i)) xclearenv(); - else for (u = TT.u; u; u = u->next) - if (strchr(u->arg, '=')) error_msg("bad -u %s", u->arg); - else xsetenv(u->arg, 0); + else for (u = TT.u; u; u = u->next) xunsetenv(u->arg); - for (; *ev; ev++) { - char *val = strchr(*ev, '='); - - if (val) { - *(val++) = 0; - xsetenv(*ev, val); - } else xexec(ev); - } + for (; *ev; ev++) + if (strchr(*ev, '=')) xsetenv(xstrdup(*ev), 0); + else xexec(ev); for (ev = environ; *ev; ev++) xprintf("%s%c", *ev, '\n'*!FLAG(0)); } -- cgit v1.2.3