1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-26 05:00:28 +02:00

Fix 'absolute-file-name?' and others for cross-build to MinGW.

* module/ice-9/boot-9.scm (compile-time-file-name-convention): New
procedure, defined only when loading.
(compile-time-case): Use it to correctly determine system file name
convention while compiling.
This commit is contained in:
Jan (janneke) Nieuwenhuizen 2021-03-18 07:46:49 +01:00 committed by Michael Gran
parent f4b976aab9
commit 96597fa21d

View file

@ -2060,6 +2060,16 @@ non-locally, that exit determines the continuation."
;;; {Load Paths}
;;;
(eval-when (eval)
(define (compile-time-file-name-convention)
(let ((target ((@ (system base target) target-type))))
(cond ((equal? target %host-type)
(system-file-name-convention))
((string-contains-ci target "mingw")
'windows)
(else
'posix)))))
(let-syntax ((compile-time-case
(lambda (stx)
(syntax-case stx ()
@ -2077,7 +2087,9 @@ non-locally, that exit determines the continuation."
#'(begin form ...)
(next-clause #'(clauses ...))))))))))))
;; emacs: (put 'compile-time-case 'scheme-indent-function 1)
(compile-time-case (system-file-name-convention)
(compile-time-case (or (and (defined? 'compile-time-file-name-convention)
(compile-time-file-name-convention))
'posix)
((posix)
(define (file-name-separator? c)
(char=? c #\/))