mirror of
https://github.com/nodejs/node.git
synced 2024-11-21 10:59:27 +00:00
build,win: fix Python detection on localized OS
This code previously assumed the default value was always printed to the console by reg.exe as "(default)", but this is not true on localized versions of Windows and can contain spaces. Fixes: https://github.com/nodejs/node/issues/29417 PR-URL: https://github.com/nodejs/node/pull/29423 Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Minwoo Jung <minwoo@nodesource.com> Reviewed-By: David Carlier <devnexen@gmail.com>
This commit is contained in:
parent
2882ce911d
commit
7bff96204b
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -1,2 +1,3 @@
|
||||
test/fixtures/* -text
|
||||
vcbuild.bat text eol=crlf
|
||||
tools/msvs/find_python.cmd text eol=crlf
|
||||
|
@ -60,14 +60,16 @@ exit /b 1
|
||||
:: Read the InstallPath of a given Environment Key to %p%
|
||||
:: https://www.python.org/dev/peps/pep-0514/#installpath
|
||||
:read-installpath
|
||||
:: %%a will receive token 3
|
||||
:: %%b will receive *, corresponding to token 4 and all after
|
||||
for /f "skip=2 tokens=3*" %%a in ('reg query "%1\InstallPath" /ve /t REG_SZ 2^> nul') do (
|
||||
set "head=%%a"
|
||||
set "tail=%%b"
|
||||
set "p=!head!"
|
||||
if not "!tail!"=="" set "p=!head! !tail!"
|
||||
:: %%a will receive everything before ), might have spaces depending on language
|
||||
:: %%b will receive *, corresponding to everything after )
|
||||
:: %%c will receive REG_SZ
|
||||
:: %%d will receive the path, including spaces
|
||||
for /f "skip=2 tokens=1* delims=)" %%a in ('reg query "%1\InstallPath" /ve /t REG_SZ 2^> nul') do (
|
||||
for /f "tokens=1*" %%c in ("%%b") do (
|
||||
if not "%%c"=="REG_SZ" exit /b 1
|
||||
set "p=%%d"
|
||||
exit /b 0
|
||||
)
|
||||
)
|
||||
exit /b 1
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user