summaryrefslogtreecommitdiff
path: root/shell
diff options
context:
space:
mode:
authorEric Andersen2002-04-26 23:40:09 +0000
committerEric Andersen2002-04-26 23:40:09 +0000
commit1c31501b1bacd5d3a2a156dfd6833fe174fff9d1 (patch)
tree9c1339c37bea59728464b9372e80d37554185f9c /shell
parent416340642df18d92600998566ccb1bec25b10d4b (diff)
downloadbusybox-1c31501b1bacd5d3a2a156dfd6833fe174fff9d1.zip
busybox-1c31501b1bacd5d3a2a156dfd6833fe174fff9d1.tar.gz
Ensure that getenv("PATH") stays current, since otherwise cmdedit
(which calls getenv("PATH")) would not operate upon the current PATH settings, which was really quite iritating. -Erik
Diffstat (limited to 'shell')
-rw-r--r--shell/ash.c4
-rw-r--r--shell/msh.c2
2 files changed, 5 insertions, 1 deletions
diff --git a/shell/ash.c b/shell/ash.c
index e721c4e..99d5e7d 100644
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -4111,6 +4111,8 @@ path_change(const char *newval, int *bltin)
}
if (builtinloc >= 0 && *bltin < 0)
firstchange = 0;
+ /* Ensure that getenv("PATH") stays current */
+ setenv("PATH", newval, 1);
return firstchange;
}
/*
@@ -12433,7 +12435,7 @@ findvar(struct var **vpp, const char *name)
/*
* Copyright (c) 1999 Herbert Xu <herbert@debian.org>
* This file contains code for the times builtin.
- * $Id: ash.c,v 1.48 2002/04/24 23:12:10 andersen Exp $
+ * $Id: ash.c,v 1.49 2002/04/26 23:39:48 andersen Exp $
*/
static int timescmd (int argc, char **argv)
{
diff --git a/shell/msh.c b/shell/msh.c
index a2f98c8..1485ccb 100644
--- a/shell/msh.c
+++ b/shell/msh.c
@@ -842,6 +842,8 @@ extern int msh_main(int argc, char **argv)
#endif
}
onecommand();
+ /* Ensure that getenv("PATH") stays current */
+ setenv("PATH", path->value, 1);
}
}