Skip to content

Commit

Permalink
bpo-36634: Fixes activate.bat when existing values contain double quo…
Browse files Browse the repository at this point in the history
…tes (GH-15924)

(cherry picked from commit 574b324)

Co-authored-by: Steve Dower <steve.dower@python.org>
  • Loading branch information
miss-islington and zooba committed Sep 11, 2019
1 parent be2aa58 commit 20f80bf
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 25 deletions.
38 changes: 13 additions & 25 deletions Lib/venv/scripts/nt/activate.bat
Original file line number Diff line number Diff line change
Expand Up @@ -2,44 +2,32 @@

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"
)

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%"
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%"
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=
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
venv activate.bat now works when the existing variables contain double quote
characters.

0 comments on commit 20f80bf

Please sign in to comment.