summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Morris <6653392+J-M0@users.noreply.github.com>2023-11-28 09:24:59 (GMT)
committerGitHub <noreply@github.com>2023-11-28 09:24:59 (GMT)
commita194938f33a71e727e53490815bae874eece1460 (patch)
treef5178e30a0478c9fe1f56f7a58ee2d539c2abe12
parentf14d741daa1b9e5b9c9fc1edba93d0fa92b5ba8d (diff)
downloadcpython-a194938f33a71e727e53490815bae874eece1460.zip
cpython-a194938f33a71e727e53490815bae874eece1460.tar.gz
cpython-a194938f33a71e727e53490815bae874eece1460.tar.bz2
gh-112431: Unconditionally call `hash -r` (GH-112432)
The `activate` script calls `hash -r` in two places to make sure the shell picks up the environment changes the script makes. Before that, it checks to see if the shell running the script is bash or zsh. `hash -r` is specified by POSIX and is not exclusive to bash and zsh. This guard prevents the script from calling `hash -r` in other `#!/bin/sh`-compatible shells like dash.
-rw-r--r--Lib/venv/scripts/common/activate14
1 files changed, 4 insertions, 10 deletions
diff --git a/Lib/venv/scripts/common/activate b/Lib/venv/scripts/common/activate
index 8398981..6fdf423 100644
--- a/Lib/venv/scripts/common/activate
+++ b/Lib/venv/scripts/common/activate
@@ -14,12 +14,9 @@ deactivate () {
unset _OLD_VIRTUAL_PYTHONHOME
fi
- # This should detect bash and zsh, which have a hash command that must
- # be called to get it to forget past commands. Without forgetting
+ # Call hash to forget past commands. Without forgetting
# past commands the $PATH changes we made may not be respected
- if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then
- hash -r 2> /dev/null
- fi
+ hash -r 2> /dev/null
if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then
PS1="${_OLD_VIRTUAL_PS1:-}"
@@ -69,9 +66,6 @@ if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then
export PS1
fi
-# This should detect bash and zsh, which have a hash command that must
-# be called to get it to forget past commands. Without forgetting
+# Call hash to forget past commands. Without forgetting
# past commands the $PATH changes we made may not be respected
-if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then
- hash -r 2> /dev/null
-fi
+hash -r 2> /dev/null