~ chicken-core (chicken-5) 278c24772d859eed9ecbd47a69a9127d0a18938f
commit 278c24772d859eed9ecbd47a69a9127d0a18938f Author: Vasilij Schneidermann <mail@vasilij.de> AuthorDate: Sun Apr 11 20:01:23 2021 +0200 Commit: Evan Hanson <evhan@foldling.org> CommitDate: Fri Jul 30 12:53:50 2021 +1200 Correctly quote set calls in Windows scripts According to https://ss64.com/nt/set.html, the set command should quote its entire argument, including the name. Likewise, quotes inside paths are illegal, therefore no quotes should be used inside PATH. It appears that the Windows shell cannot deal with quoting inside an argument, only when quotes surround the argument. This is not the case on Unix environments at all. Closes #1727 Signed-off-by: Peter Bex <peter@more-magic.net> Signed-off-by: Evan Hanson <evhan@foldling.org> diff --git a/NEWS b/NEWS index 060a9d0e..a6d8c845 100644 --- a/NEWS +++ b/NEWS @@ -80,6 +80,9 @@ cache directory matching its program name (#1713, thanks to Alice Maz) - Fixed bug in chicken-install regarding variable quotation on UNIX-like systems which prevented installation into paths with spaces (#1685). + - Fixed a similar bug in chicken-install for paths with spaces on mingw + and mingw-msys (#1727, thanks to Josh Helzer for reporting and Vasilij + Schneidermann for the patch). - Module system - Fixed a memory leak when calling (import) multiple times in a row diff --git a/egg-compile.scm b/egg-compile.scm index 186a7227..205505a6 100644 --- a/egg-compile.scm +++ b/egg-compile.scm @@ -1128,16 +1128,16 @@ EOF ((windows) (printf #<<EOF @echo off~% -set PATH=~a;%PATH% -set CHICKEN_CC=~a -set CHICKEN_CXX=~a -set CHICKEN_CSC=~a -set CHICKEN_CSI=~a +set "PATH=~a;%PATH%" +set "CHICKEN_CC=~a" +set "CHICKEN_CXX=~a" +set "CHICKEN_CSC=~a" +set "CHICKEN_CSI=~a" EOF - (qs* default-bindir platform) (qs* default-cc platform) - (qs* default-cxx platform) (qs* default-csc platform) - (qs* default-csi platform))))) + default-bindir default-cc + default-cxx default-csc + default-csi)))) (define ((build-suffix mode name info) platform) (case platformTrap