~ 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 #<<EOF
Trap