~ chicken-core (chicken-5) d2dcb46257c253bc926258ac9945896c78df133f
commit d2dcb46257c253bc926258ac9945896c78df133f Author: Peter Bex <peter@more-magic.net> AuthorDate: Sat Nov 9 17:02:15 2019 +0100 Commit: Evan Hanson <evhan@foldling.org> CommitDate: Mon Nov 11 21:02:30 2019 +1300 Change to the drive before changing directory when running egg commands On Windows, changing to the directory including the drive will just set the working directory of that drive, but it won't actually change to that working directory on that drive. So, we first change to the drive before changing directories. Fixes #1647 Signed-off-by: Evan Hanson <evhan@foldling.org> diff --git a/NEWS b/NEWS index 9f59849f..d9406408 100644 --- a/NEWS +++ b/NEWS @@ -52,6 +52,8 @@ - chicken-install now correctly checks server response code to avoid interpreting error response bodies (like 404, 500) as Scheme code. - chicken-install now follows HTTP redirects when downloading eggs. + - chicken-install will now change to the correct drive before + attempting to change to the egg directory (fixes #1647). 5.1.0 diff --git a/egg-compile.scm b/egg-compile.scm index 0fd9c242..149f25a9 100644 --- a/egg-compile.scm +++ b/egg-compile.scm @@ -100,6 +100,11 @@ (define (cd-command platform) "cd") +(define (change-drive-command platform drive) + (case platform + ((unix) #f) + ((windows) drive))) ; Should already include the colon + (define (uses-compiled-import-library? mode) (not (and (eq? mode 'host) staticbuild))) @@ -1085,12 +1090,16 @@ (with-output-to-file dest (lambda () (prefix platform) + (receive (drive root parts) (decompose-directory srcdir) + (let ((cmd (change-drive-command platform drive))) + (when cmd + (print cmd)))) (print (cd-command platform) " " (qs* srcdir platform #t)) (for-each (lambda (cmd) (cmd srcdir platform)) cmds) (suffix platform))))) - + ;;; affixes for build- and install-scriptsTrap