0.9.7.3:
authorChristophe Rhodes <csr21@cam.ac.uk>
Tue, 29 Nov 2005 16:17:33 +0000 (16:17 +0000)
committerChristophe Rhodes <csr21@cam.ac.uk>
Tue, 29 Nov 2005 16:17:33 +0000 (16:17 +0000)
Fix :CHARACTER-SET components or subcomponents in pathnames
... everything apart from the constructor thought they were
represented as a dotted pair.  Make it so.

BUGS
NEWS
src/code/filesys.lisp
tests/filesys.pure.lisp
version.lisp-expr

diff --git a/BUGS b/BUGS
index 4b7bf51..24a6847 100644 (file)
--- a/BUGS
+++ b/BUGS
@@ -2102,12 +2102,5 @@ WORKAROUND:
   the right fix is to remove the abstraction violation in the
   compiler's type deriver.
 
-390:
-  reported on sbcl-help by Tim Daly Jr.
-
-    (DIRECTORY "/tmp/[P]*.*")
-  gives a type error: 
-    The value "P" is not of type CHARACTER.
-
 391:
   (fixed in sbcl-0.9.7.1)
diff --git a/NEWS b/NEWS
index 16ff77f..674b2ee 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,7 @@
 ;;;; -*- coding: utf-8; -*-
 changes in sbcl-0.9.8 relative to sbcl-0.9.7:
+  * fixed bug #390: :CHARACTER-SET pathname components now work as
+    expected.  (reported by Tim Daly Jr)
   * fixed bug #391: complicated :TYPE intersections in slot
     definitions no longer cause an error in PCL internals.
   * bug fix: FILE-STRING-LENGTH is now external-format sensitive,
index 28b09c9..2887bac 100644 (file)
                                   :complaint "#\\[ with no corresponding #\\]"
                                   :namestring namestr
                                   :offset index))
-                         (pattern (list :character-set
+                         (pattern (cons :character-set
                                         (subseq namestr
                                                 (1+ index)
                                                 close-bracket)))
index cdac2f3..4a5d0be 100644 (file)
                      (search "tests/filesys.pure.lisp"
                              (namestring pathname)))
                    dir)))
+;;; In sbcl-0.9.7 DIRECTORY failed on pathnames with character-set
+;;; components.
+(let ((dir (directory "[f]*.*")))
+  ;; We know a little bit about the structure of this result;
+  ;; let's test to make sure that this test file is in it.
+  (assert (find-if (lambda (pathname)
+                     (search "filesys.pure.lisp"
+                             (namestring pathname)))
+                   dir)))
 
 ;;; Set *default-pathname-defaults* to something other than the unix
 ;;; cwd, to catch functions which access the filesystem without
index b119414..cab149b 100644 (file)
@@ -17,4 +17,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.9.7.2"
+"0.9.7.3"