diff options
Diffstat (limited to 'commands/setenv.c')
-rw-r--r-- | commands/setenv.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/commands/setenv.c b/commands/setenv.c index ad26770655..99604c35c3 100644 --- a/commands/setenv.c +++ b/commands/setenv.c @@ -9,20 +9,22 @@ static int do_setenv(int argc, char *argv[]) { - char *equal; + char *val; + int ret; if (argc < 2) return COMMAND_ERROR_USAGE; - equal = strrchr(argv[1], '='); - if (equal) { - equal[0] = '\0'; - if (equal[1]) - argv[2] = &equal[1]; - } + val = parse_assignment(argv[1]); + if (val) + argv[2] = val; + if (argv[2]) + ret = setenv(argv[1], argv[2]); + else + ret = unsetenv(argv[1]); - return setenv(argv[1], argv[2]) ? COMMAND_ERROR : COMMAND_SUCCESS; + return ret ? COMMAND_ERROR : COMMAND_SUCCESS; } BAREBOX_CMD_HELP_START(setenv) |