~ chicken-core (chicken-5) a22990ba293ebd0e7f79dbf80d17015299d36315
commit a22990ba293ebd0e7f79dbf80d17015299d36315 Author: felix <felix@call-with-current-continuation.org> AuthorDate: Mon Oct 24 17:21:37 2022 +0200 Commit: Peter Bex <peter@more-magic.net> CommitDate: Tue Oct 25 12:05:54 2022 +0200 Fix double-quoting bug in egg-compile code exposed by previous fix 1cd587adf8ae40b9e8e779791796ad6dfea209f6 exposed another bug in quoting of command-line arguments. Reported by klovett. Signed-off-by: felix <felix@call-with-current-continuation.org> Signed-off-by: Peter Bex <peter@more-magic.net> diff --git a/egg-compile.scm b/egg-compile.scm index 12a7bfa8..14c93be0 100644 --- a/egg-compile.scm +++ b/egg-compile.scm @@ -599,11 +599,9 @@ default-csc) platform)) (sname (prefix srcdir name)) - (tfile (qs* (prefix srcdir (conc types-file ".types")) - platform)) - (ifile (qs* (prefix srcdir (conc inline-file ".inline")) - platform)) - (lfile (qs* (conc sname +link-file-extension+) platform)) + (tfile (prefix srcdir (conc types-file ".types"))) + (ifile (prefix srcdir (conc inline-file ".inline"))) + (lfile (conc sname +link-file-extension+)) (opts (append (if (null? options) default-static-compilation-options options) @@ -629,14 +627,13 @@ (maybe types-file tfile) (maybe inline-file ifile) (map (lambda (m) - (qs* (prefix srcdir (conc m ".import.scm")) - platform)) + (prefix srcdir (conc m ".import.scm"))) (or modules '())))) (src (qs* (or source (conc name ".scm")) platform))) (when custom (prepare-custom-command cmd platform)) (print "\n" (qs* default-builder platform #t) " " - (joins targets) " : " + (joins targets platform) " : " src " " (qs* eggfile platform) " " (if custom cmd "") " " (filelist srcdir source-dependencies platform) @@ -645,7 +642,7 @@ " -regenerate-import-libraries" (if modules " -J" "") " -M" " -setup-mode -static -I " srcdir - " -emit-link-file " lfile + " -emit-link-file " (qs* lfile platform) (if (eq? mode 'host) " -host" "") " -D compiling-extension -c -unit " name " -D compiling-static-extension" @@ -675,10 +672,8 @@ default-csc) platform)) (sname (prefix srcdir name)) - (tfile (qs* (prefix srcdir (conc types-file ".types")) - platform)) - (ifile (qs* (prefix srcdir (conc inline-file ".inline")) - platform)) + (tfile (prefix srcdir (conc types-file ".types"))) + (ifile (prefix srcdir (conc inline-file ".inline"))) (opts (append (if (null? options) default-dynamic-compilation-options options) @@ -700,13 +695,12 @@ (maybe inline-file ifile) (maybe types-file tfile) (map (lambda (m) - (qs* (prefix srcdir (conc m ".import.scm")) - platform)) + (prefix srcdir (conc m ".import.scm"))) modules)))) (when custom (prepare-custom-command cmd platform)) (print "\n" (qs* default-builder platform #t) " " - (joins targets) + (joins targets platform) " : " src " " (qs* eggfile platform) " " @@ -1274,6 +1268,7 @@ EOF (assert (string=? prefix p1) "wrong prefix") (substring fname (add1 plen)))) -(define (joins strs) (string-intersperse strs " ")) +(define (joins strs platform) + (string-intersperse (map (cut qs* <> platform) strs) " ")) (define (maybe f x) (if f (list x) '()))Trap