guile-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Guile-commits] 13/15: Fix 'absolute-file-name?' and others for cross-bu


From: Jan Nieuwenhuizen
Subject: [Guile-commits] 13/15: Fix 'absolute-file-name?' and others for cross-build to MinGW.
Date: Mon, 12 Apr 2021 05:55:46 -0400 (EDT)

janneke pushed a commit to branch wip-mingw
in repository guile.

commit 177aa66e41e2f01aec725dd90e555a9d188062fb
Author: Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
AuthorDate: Thu Mar 18 07:46:49 2021 +0100

    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.
---
 module/ice-9/boot-9.scm | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/module/ice-9/boot-9.scm b/module/ice-9/boot-9.scm
index 165fa25..e20bf04 100644
--- a/module/ice-9/boot-9.scm
+++ b/module/ice-9/boot-9.scm
@@ -2060,6 +2060,16 @@ non-locally, that exit determines the continuation."
 ;;; {Load Paths}
 ;;;
 
+(eval-when (load)
+  (define (compile-time-file-name-convention)
+    (let ((target (fluid-ref (@@ (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 #\/))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]