~ chicken-core (chicken-5) 85935635aed0faf1f4a79cb09705e460274c916e
commit 85935635aed0faf1f4a79cb09705e460274c916e Author: Peter Bex <peter@more-magic.net> AuthorDate: Sun Jul 22 16:58:46 2018 +0200 Commit: Evan Hanson <evhan@foldling.org> CommitDate: Mon Jul 23 11:42:42 2018 +1200 Quote and slashify destination directories too For example, xcopy will try to interpret forward slashes as command line parameters, resulting in problems when retrieving eggs and copying a directory. Signed-off-by: Evan Hanson <evhan@foldling.org> diff --git a/chicken-install.scm b/chicken-install.scm index eb484f28..8593745c 100644 --- a/chicken-install.scm +++ b/chicken-install.scm @@ -501,7 +501,8 @@ (let ((cmd (quote-all (string-append (copy-directory-command platform) - " " (quotearg (make-pathname from "*")) " " (quotearg to)) + " " (quotearg (slashify (make-pathname from "*") platform)) + " " (quotearg (slashify to platform))) platform))) (d "~a~%" cmd) (system cmd))) diff --git a/egg-compile.scm b/egg-compile.scm index 364af316..91edd3b9 100644 --- a/egg-compile.scm +++ b/egg-compile.scm @@ -644,12 +644,14 @@ (mkdir (mkdir-command platform)) (ext (object-extension platform)) (sname (prefix srcdir name)) - (out (quotearg (target-file (conc sname ".static" ext) - mode))) - (outlnk (quotearg (conc sname +link-file-extension+))) + (out (quotearg (slashify (target-file (conc sname ".static" ext) + mode) platform))) + (outlnk (quotearg (slashify (conc sname +link-file-extension+) + platform))) (dest (destination-repository mode)) (dfile (quotearg (slashify dest platform))) - (ddir (shell-variable "DESTDIR" platform))) + (ddir (quotearg (slashify (shell-variable "DESTDIR" platform) + platform)))) (print "\n" mkdir " " ddir dfile) (print cmd " " out " " ddir (quotearg (slashify (conc dest "/" @@ -670,10 +672,12 @@ (dcmd (remove-file-command platform)) (mkdir (mkdir-command platform)) (sname (prefix srcdir name)) - (out (quotearg (target-file (conc sname ext) mode))) + (out (quotearg (slashify (target-file (conc sname ext) mode) + platform))) (dest (destination-repository mode)) (dfile (quotearg (slashify dest platform))) - (ddir (shell-variable "DESTDIR" platform)) + (ddir (quotearg (slashify (shell-variable "DESTDIR" platform) + platform))) (destf (quotearg (slashify (conc dest "/" output-file ext) platform)))) (print "\n" mkdir " " ddir dfile) @@ -693,10 +697,13 @@ (let* ((cmd (install-file-command platform)) (mkdir (mkdir-command platform)) (sname (prefix srcdir name)) - (out (quotearg (target-file (conc sname ".import.scm") mode))) + (out (quotearg (slashify (target-file (conc sname ".import.scm") + mode) + platform))) (dest (destination-repository mode)) (dfile (quotearg (slashify dest platform))) - (ddir (shell-variable "DESTDIR" platform))) + (ddir (quotearg (slashify (shell-variable "DESTDIR" platform) + platform)))) (print "\n" mkdir " " ddir dfile) (print cmd " " out " " ddir (quotearg (slashify (conc dest "/" name ".import.scm") @@ -707,10 +714,13 @@ srcdir platform) (let* ((cmd (install-file-command platform)) (mkdir (mkdir-command platform)) - (out (quotearg (prefix srcdir (conc types-file ".types")))) + (out (quotearg (slashify (prefix srcdir + (conc types-file ".types")) + platform))) (dest (destination-repository mode)) (dfile (quotearg (slashify dest platform))) - (ddir (shell-variable "DESTDIR" platform))) + (ddir (quotearg (slashify (shell-variable "DESTDIR" platform) + platform)))) (print "\n" mkdir " " ddir dfile) (print cmd " " out " " ddir (quotearg (slashify (conc dest "/" types-file ".types") @@ -721,10 +731,13 @@ srcdir platform) (let* ((cmd (install-file-command platform)) (mkdir (mkdir-command platform)) - (out (quotearg (prefix srcdir (conc inline-file ".inline")))) + (out (quotearg (slashify (prefix srcdir + (conc inline-file ".inline")) + platform))) (dest (destination-repository mode)) (dfile (quotearg (slashify dest platform))) - (ddir (shell-variable "DESTDIR" platform))) + (ddir (quotearg (slashify (shell-variable "DESTDIR" platform) + platform)))) (print "\n" mkdir " " ddir dfile) (print cmd " " out " " ddir (quotearg (slashify (conc dest "/" inline-file ".inline") @@ -737,12 +750,14 @@ (mkdir (mkdir-command platform)) (ext (executable-extension platform)) (sname (prefix srcdir name)) - (out (quotearg (target-file (conc sname ext) mode))) + (out (quotearg (slashify (target-file (conc sname ext) mode) + platform))) (dest (if (eq? mode 'target) default-bindir (override-prefix "/bin" host-bindir))) (dfile (quotearg (slashify dest platform))) - (ddir (shell-variable "DESTDIR" platform)) + (ddir (quotearg (slashify (shell-variable "DESTDIR" platform) + platform))) (destf (quotearg (slashify (conc dest "/" output-file ext) platform)))) (print "\n" mkdir " " ddir dfile) @@ -761,12 +776,13 @@ default-sharedir (override-prefix "/share" host-sharedir)))) (dfile (quotearg (slashify dest platform))) - (ddir (shell-variable "DESTDIR" platform))) + (ddir (quotearg (slashify (shell-variable "DESTDIR" platform) + platform)))) (print "\n" mkdir " " ddir dfile) (let-values (((ds fs) (partition directory? sfiles))) (for-each (lambda (d) - (print dcmd " " (quotearg d) " " ddir dfile) + (print dcmd " " (quotearg (slashify d platform)) " " ddir dfile) (print-end-command platform)) ds) (when (pair? fs) @@ -781,7 +797,8 @@ default-incdir (override-prefix "/include" host-incdir)))) (dfile (quotearg (slashify dest platform))) - (ddir (shell-variable "DESTDIR" platform))) + (ddir (quotearg (slashify (shell-variable "DESTDIR" platform) + platform)))) (print "\n" mkdir " " ddir dfile) (print cmd (arglist (map (cut prefix srcdir <>) files)) " " ddir dfile) (print-end-command platform))) @@ -866,7 +883,8 @@ EOF (qdir (quotearg (slashify dir platform))) (dest (quotearg (slashify (make-pathname dir name +egg-info-extension+) platform))) - (ddir (shell-variable "DESTDIR" platform))) + (ddir (quotearg (slashify (shell-variable "DESTDIR" platform) + platform)))) (case platform ((unix) (printf #<<EOFTrap