mirror of
https://github.com/zebrajr/node.git
synced 2025-12-06 12:20:27 +01: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
9de417ad59
commit
42fd139279
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