From e9221e9fe7075ea87de4b9e4686eec6294056539 Mon Sep 17 00:00:00 2001 From: Steve Dower Date: Wed, 11 Sep 2019 12:34:51 +0100 Subject: [PATCH 1/2] bpo-36634: Fixes activate.bat when existing values contain double quotes --- Lib/venv/scripts/nt/activate.bat | 22 +++++++++---------- .../2019-09-11-12-34-31.bpo-36634.xLaGgb.rst | 2 ++ 2 files changed, 13 insertions(+), 11 deletions(-) create mode 100644 Misc/NEWS.d/next/Windows/2019-09-11-12-34-31.bpo-36634.xLaGgb.rst diff --git a/Lib/venv/scripts/nt/activate.bat b/Lib/venv/scripts/nt/activate.bat index da831bb42c79b2..45234abece3a68 100644 --- a/Lib/venv/scripts/nt/activate.bat +++ b/Lib/venv/scripts/nt/activate.bat @@ -2,41 +2,41 @@ rem This file is UTF-8 encoded, so we need to update the current code page while executing it for /f "tokens=2 delims=:." %%a in ('"%SystemRoot%\System32\chcp.com"') do ( - set "_OLD_CODEPAGE=%%a" + set _OLD_CODEPAGE=%%a ) if defined _OLD_CODEPAGE ( "%SystemRoot%\System32\chcp.com" 65001 > nul ) -set "VIRTUAL_ENV=__VENV_DIR__" +set VIRTUAL_ENV=__VENV_DIR__ if not defined PROMPT ( - set "PROMPT=$P$G" + set PROMPT=$P$G ) if defined _OLD_VIRTUAL_PROMPT ( - set "PROMPT=%_OLD_VIRTUAL_PROMPT%" + set PROMPT=%_OLD_VIRTUAL_PROMPT% ) if defined _OLD_VIRTUAL_PYTHONHOME ( - set "PYTHONHOME=%_OLD_VIRTUAL_PYTHONHOME%" + set PYTHONHOME=%_OLD_VIRTUAL_PYTHONHOME% ) -set "_OLD_VIRTUAL_PROMPT=%PROMPT%" -set "PROMPT=__VENV_PROMPT__%PROMPT%" +set _OLD_VIRTUAL_PROMPT=%PROMPT% +set PROMPT=__VENV_PROMPT__%PROMPT% if defined PYTHONHOME ( - set "_OLD_VIRTUAL_PYTHONHOME=%PYTHONHOME%" + set _OLD_VIRTUAL_PYTHONHOME=%PYTHONHOME% set PYTHONHOME= ) if defined _OLD_VIRTUAL_PATH ( - set "PATH=%_OLD_VIRTUAL_PATH%" + set PATH=%_OLD_VIRTUAL_PATH% ) else ( - set "_OLD_VIRTUAL_PATH=%PATH%" + set _OLD_VIRTUAL_PATH=%PATH% ) -set "PATH=%VIRTUAL_ENV%\__VENV_BIN_NAME__;%PATH%" +set PATH=%VIRTUAL_ENV%\__VENV_BIN_NAME__;%PATH% :END if defined _OLD_CODEPAGE ( diff --git a/Misc/NEWS.d/next/Windows/2019-09-11-12-34-31.bpo-36634.xLaGgb.rst b/Misc/NEWS.d/next/Windows/2019-09-11-12-34-31.bpo-36634.xLaGgb.rst new file mode 100644 index 00000000000000..c0bd2beaae2dfe --- /dev/null +++ b/Misc/NEWS.d/next/Windows/2019-09-11-12-34-31.bpo-36634.xLaGgb.rst @@ -0,0 +1,2 @@ +venv activate.bat now works when the existing variables contain double quote +characters. From 45d364ade3b8ba2db5c84b5d48753721362d260f Mon Sep 17 00:00:00 2001 From: Steve Dower Date: Wed, 11 Sep 2019 14:02:08 +0100 Subject: [PATCH 2/2] Remove risk of parentheses breaking script --- Lib/venv/scripts/nt/activate.bat | 28 ++++++++-------------------- 1 file changed, 8 insertions(+), 20 deletions(-) diff --git a/Lib/venv/scripts/nt/activate.bat b/Lib/venv/scripts/nt/activate.bat index 45234abece3a68..8eb5c1ff664fb7 100644 --- a/Lib/venv/scripts/nt/activate.bat +++ b/Lib/venv/scripts/nt/activate.bat @@ -10,36 +10,24 @@ if defined _OLD_CODEPAGE ( set VIRTUAL_ENV=__VENV_DIR__ -if not defined PROMPT ( - set PROMPT=$P$G -) - -if defined _OLD_VIRTUAL_PROMPT ( - set PROMPT=%_OLD_VIRTUAL_PROMPT% -) +if not defined PROMPT set PROMPT=$P$G -if defined _OLD_VIRTUAL_PYTHONHOME ( - set PYTHONHOME=%_OLD_VIRTUAL_PYTHONHOME% -) +if defined _OLD_VIRTUAL_PROMPT set PROMPT=%_OLD_VIRTUAL_PROMPT% +if defined _OLD_VIRTUAL_PYTHONHOME set PYTHONHOME=%_OLD_VIRTUAL_PYTHONHOME% set _OLD_VIRTUAL_PROMPT=%PROMPT% set PROMPT=__VENV_PROMPT__%PROMPT% -if defined PYTHONHOME ( - set _OLD_VIRTUAL_PYTHONHOME=%PYTHONHOME% - set PYTHONHOME= -) +if defined PYTHONHOME set _OLD_VIRTUAL_PYTHONHOME=%PYTHONHOME% +set PYTHONHOME= -if defined _OLD_VIRTUAL_PATH ( - set PATH=%_OLD_VIRTUAL_PATH% -) else ( - set _OLD_VIRTUAL_PATH=%PATH% -) +if defined _OLD_VIRTUAL_PATH set PATH=%_OLD_VIRTUAL_PATH% +else set _OLD_VIRTUAL_PATH=%PATH% set PATH=%VIRTUAL_ENV%\__VENV_BIN_NAME__;%PATH% :END if defined _OLD_CODEPAGE ( "%SystemRoot%\System32\chcp.com" %_OLD_CODEPAGE% > nul - set "_OLD_CODEPAGE=" + set _OLD_CODEPAGE= )