From 2154689a983e70e6a8e89f7236527da1ce31d2f4 Mon Sep 17 00:00:00 2001 From: Peter Bex Date: Sun, 22 Jul 2018 16:58:46 +0200 Subject: [PATCH] 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. --- chicken-install.scm | 4 +++- egg-compile.scm | 29 +++++++++++++++++++---------- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/chicken-install.scm b/chicken-install.scm index eb484f28..74fb24a4 100644 --- a/chicken-install.scm +++ b/chicken-install.scm @@ -501,7 +501,9 @@ (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..3305ce35 100644 --- a/egg-compile.scm +++ b/egg-compile.scm @@ -649,7 +649,8 @@ (outlnk (quotearg (conc sname +link-file-extension+))) (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 "/" @@ -673,7 +674,8 @@ (out (quotearg (target-file (conc sname ext) mode))) (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) @@ -696,7 +698,8 @@ (out (quotearg (target-file (conc sname ".import.scm") mode))) (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") @@ -710,7 +713,8 @@ (out (quotearg (prefix srcdir (conc types-file ".types")))) (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") @@ -724,7 +728,8 @@ (out (quotearg (prefix srcdir (conc inline-file ".inline")))) (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") @@ -742,7 +747,8 @@ 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 +767,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 +788,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 +874,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 #<