("src/code/reader" :not-host) ; needs "code/readtable"
("src/code/target-stream" :not-host) ; needs WHITESPACEP from "code/reader"
("src/code/target-pathname" :not-host) ; needs "code/pathname"
- ("src/code/unix-pathname" :not-host)
- ("src/code/win32-pathname" :not-host)
+ #!-win32
+ ("src/code/unix-pathname" :not-host)
+ #!+win32
+ ("src/code/win32-pathname" :not-host)
("src/code/filesys" :not-host) ; needs HOST from "code/pathname"
("src/code/save" :not-host) ; uses the definition of PATHNAME
;; SBCL_HOME isn't set for :EXECUTABLE T embedded cores
(when (and sbcl-home (not (string= sbcl-home "")))
(parse-native-namestring sbcl-home
- #!-win32 sb!impl::*unix-host*
- #!+win32 sb!impl::*win32-host*
+ *physical-host*
*default-pathname-defaults*
:as-directory t))))
(or (user-homedir-namestring)
#!+win32
(sb!win32::get-folder-namestring sb!win32::csidl_profile))
- #!-win32 sb!impl::*unix-host*
- #!+win32 sb!impl::*win32-host*
+ *physical-host*
*default-pathname-defaults*
:as-directory t)))
#!-sb-fluid (declaim (freeze-type logical-pathname logical-host))
\f
-;;;; PHYSICAL-HOST stuff
-
-(def!struct (unix-host
- (:make-load-form-fun make-unix-host-load-form)
- (:include host
- (parse #'parse-unix-namestring)
- (parse-native #'parse-native-unix-namestring)
- (unparse #'unparse-unix-namestring)
- (unparse-native #'unparse-native-unix-namestring)
- (unparse-host #'unparse-unix-host)
- (unparse-directory #'unparse-physical-directory)
- (unparse-file #'unparse-unix-file)
- (unparse-enough #'unparse-unix-enough)
- (unparse-directory-separator "/")
- (simplify-namestring #'simplify-unix-namestring)
- (customary-case :lower))))
-(defvar *unix-host* (make-unix-host))
-(defun make-unix-host-load-form (host)
- (declare (ignore host))
- '*unix-host*)
-
-(def!struct (win32-host
- (:make-load-form-fun make-win32-host-load-form)
- (:include host
- (parse #'parse-win32-namestring)
- (parse-native #'parse-native-win32-namestring)
- (unparse #'unparse-win32-namestring)
- (unparse-native #'unparse-native-win32-namestring)
- (unparse-host #'unparse-win32-host)
- (unparse-directory #'unparse-physical-directory)
- (unparse-file #'unparse-win32-file)
- (unparse-enough #'unparse-win32-enough)
- (unparse-directory-separator "\\")
- (simplify-namestring #'simplify-win32-namestring)
- (customary-case :lower))))
-(defparameter *win32-host* (make-win32-host))
-(defun make-win32-host-load-form (host)
- (declare (ignore host))
- '*win32-host*)
+;;; To be initialized in unix/win32-pathname.lisp
+(defvar *physical-host*)
-(defvar *physical-host*
- #!-win32 *unix-host*
- #!+win32 *win32-host*)
+(defun make-host-load-form (host)
+ (declare (ignore host))
+ '*physical-host*)
;;; Return a value suitable, e.g., for preinitializing
;;; *DEFAULT-PATHNAME-DEFAULTS* before *DEFAULT-PATHNAME-DEFAULTS* is
(%pathname-name pathname2))
(compare-component (%pathname-type pathname1)
(%pathname-type pathname2))
- (or (eq (%pathname-host pathname1) *unix-host*)
+ (or (eq (%pathname-host pathname1) *physical-host*)
(compare-component (%pathname-version pathname1)
(%pathname-version pathname2))))))
(frob %pathname-directory translate-directories)
(frob %pathname-name)
(frob %pathname-type)
- (if (eq from-host *unix-host*)
+ (if (eq from-host *physical-host*)
(if (or (eq (%pathname-version to) :wild)
(eq (%pathname-version to) nil))
(%pathname-version source)
(in-package "SB!IMPL")
+(def!struct (unix-host
+ (:make-load-form-fun make-host-load-form)
+ (:include host
+ (parse #'parse-unix-namestring)
+ (parse-native #'parse-native-unix-namestring)
+ (unparse #'unparse-unix-namestring)
+ (unparse-native #'unparse-native-unix-namestring)
+ (unparse-host #'unparse-unix-host)
+ (unparse-directory #'unparse-physical-directory)
+ (unparse-file #'unparse-unix-file)
+ (unparse-enough #'unparse-unix-enough)
+ (unparse-directory-separator "/")
+ (simplify-namestring #'simplify-unix-namestring)
+ (customary-case :lower))))
+
+(defvar *physical-host* (make-unix-host))
+
;;; Take a string and return a list of cons cells that mark the char
;;; separated subseq. The first value is true if absolute directories
;;; location.
(in-package "SB!IMPL")
+(def!struct (win32-host
+ (:make-load-form-fun make-host-load-form)
+ (:include host
+ (parse #'parse-win32-namestring)
+ (parse-native #'parse-native-win32-namestring)
+ (unparse #'unparse-win32-namestring)
+ (unparse-native #'unparse-native-win32-namestring)
+ (unparse-host #'unparse-win32-host)
+ (unparse-directory #'unparse-physical-directory)
+ (unparse-file #'unparse-win32-file)
+ (unparse-enough #'unparse-win32-enough)
+ (unparse-directory-separator "\\")
+ (simplify-namestring #'simplify-win32-namestring)
+ (customary-case :lower))))
+
+(defvar *physical-host* (make-win32-host))
+
+;;;
(define-symbol-macro +long-file-name-prefix+ (quote "\\\\?\\"))
(define-symbol-macro +unc-file-name-prefix+ (quote "\\\\?\\UNC"))