+\f
+;;; bug reported by Artem V. Andreev: :WILD not handled in unparsing
+;;; directory lists.
+(assert (equal (namestring #p"/tmp/*/") "/tmp/*/"))
+
+;;; Printing of pathnames; see CLHS 22.1.3.1. This section was started
+;;; to confirm that pathnames are printed as their namestrings under
+;;; :escape nil :readably nil.
+(loop for (pathname expected . vars) in
+ `((#p"/foo" "#P\"/foo\"")
+ (#p"/foo" "#P\"/foo\"" :readably nil)
+ (#p"/foo" "#P\"/foo\"" :escape nil)
+ (#p"/foo" "/foo" :readably nil :escape nil))
+ for actual = (with-standard-io-syntax
+ (apply #'write-to-string pathname vars))
+ do (assert (string= expected actual)
+ ()
+ "~S should be ~S, was ~S"
+ (list* 'write-to-string pathname vars)
+ expected
+ actual))
+\f
+;;; we got (truename "/") wrong for about 6 months. Check that it's
+;;; still right.
+(let ((pathname (truename "/")))
+ (assert (equalp pathname #p"/"))
+ (assert (equal (pathname-directory pathname) '(:absolute))))
+\f
+;;; we failed to unparse logical pathnames with :NAME :WILD :TYPE NIL.
+;;; (Reported by Pascal Bourguignon.
+(let ((pathname (make-pathname :host "SYS" :directory '(:absolute :wild-inferiors)
+ :name :wild :type nil)))
+ (assert (string= (namestring pathname) "SYS:**;*"))
+ (assert (string= (write-to-string pathname :readably t) "#P\"SYS:**;*\"")))