;;; pathname information into structure slot entries, and after
;;; translation the inverse (unparse) functions.
(def!struct (host (:constructor nil))
- (parse (required-argument) :type function)
- (unparse (required-argument) :type function)
- (unparse-host (required-argument) :type function)
- (unparse-directory (required-argument) :type function)
- (unparse-file (required-argument) :type function)
- (unparse-enough (required-argument) :type function)
- (customary-case (required-argument) :type (member :upper :lower)))
+ (parse (missing-arg) :type function)
+ (unparse (missing-arg) :type function)
+ (unparse-host (missing-arg) :type function)
+ (unparse-directory (missing-arg) :type function)
+ (unparse-file (missing-arg) :type function)
+ (unparse-enough (missing-arg) :type function)
+ (customary-case (missing-arg) :type (member :upper :lower)))
+
+(def!method print-object ((host host) stream)
+ (print-unreadable-object (host stream :type t :identity t)))
(def!struct (logical-host
(:make-load-form-fun make-logical-host-load-form-fun)
(:include host
- (:parse #'parse-logical-namestring)
- (:unparse #'unparse-logical-namestring)
- (:unparse-host
+ (parse #'parse-logical-namestring)
+ (unparse #'unparse-logical-namestring)
+ (unparse-host
(lambda (x)
(logical-host-name (%pathname-host x))))
- (:unparse-directory #'unparse-logical-directory)
- (:unparse-file #'unparse-unix-file)
- (:unparse-enough #'unparse-enough-namestring)
- (:customary-case :upper)))
+ (unparse-directory #'unparse-logical-directory)
+ (unparse-file #'unparse-unix-file)
+ (unparse-enough #'unparse-enough-namestring)
+ (customary-case :upper)))
(name "" :type simple-base-string)
(translations nil :type list)
(canon-transls nil :type list))
;; on standard Unix filesystems)
(version nil :type (or integer pathname-component-tokens (member :newest))))
-;;; Return a value suitable, e.g., for preinitializing
-;;; *DEFAULT-PATHNAME-DEFAULTS* before *DEFAULT-PATHNAME-DEFAULTS* is
-;;; initialized (at which time we can't safely call e.g. #'PATHNAME).
-(defun make-trivial-default-pathname ()
- (%make-pathname *unix-host* nil nil nil nil :newest))
-
;;; Logical pathnames have the following format:
;;;
;;; logical-namestring ::=
;;; Physical pathnames include all these slots and a device slot.
;;; Logical pathnames are a subclass of PATHNAME. Their class
-;;; relations are mimicked using structures for efficency.
+;;; relations are mimicked using structures for efficiency.
(sb!xc:defstruct (logical-pathname (:conc-name %logical-pathname-)
(:include pathname)
(:constructor %make-logical-pathname