svn commit: trunk/busybox/coreutils
vda at busybox.net
vda at busybox.net
Tue Nov 11 21:32:39 UTC 2008
Author: vda
Date: 2008-11-11 13:32:39 -0800 (Tue, 11 Nov 2008)
New Revision: 24005
Log:
env: support -uVAR=VAL
function old new delta
env_main 245 233 -12
Modified:
trunk/busybox/coreutils/env.c
Changeset:
Modified: trunk/busybox/coreutils/env.c
===================================================================
--- trunk/busybox/coreutils/env.c 2008-11-11 21:15:56 UTC (rev 24004)
+++ trunk/busybox/coreutils/env.c 2008-11-11 21:32:39 UTC (rev 24005)
@@ -43,8 +43,6 @@
int env_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
int env_main(int argc UNUSED_PARAM, char **argv)
{
- /* cleanenv was static - why? */
- char *cleanenv[1];
char **ep;
unsigned opt;
llist_t *unset_env = NULL;
@@ -60,13 +58,17 @@
++argv;
}
if (opt & 1) {
- cleanenv[0] = NULL;
- environ = cleanenv;
- } else {
- while (unset_env) {
- unsetenv(llist_pop(&unset_env));
- }
+ clearenv();
}
+ while (unset_env) {
+ char *var = llist_pop(&unset_env);
+ /* This does not handle -uVAR=VAL
+ * (coreutils _sets_ the variable in that case): */
+ /*unsetenv(var);*/
+ /* This does, but uses somewhan undocumented feature that
+ * putenv("name_without_equal_sign") unsets the variable: */
+ putenv(var);
+ }
while (*argv && (strchr(*argv, '=') != NULL)) {
if (putenv(*argv) < 0) {
More information about the busybox-cvs
mailing list