From ffb8ca7616d75c88aae8f0939a241260ffdec051 Mon Sep 17 00:00:00 2001 From: Christophe Rhodes Date: Tue, 29 Nov 2005 16:17:33 +0000 Subject: [PATCH] 0.9.7.3: 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 | 7 ------- NEWS | 2 ++ src/code/filesys.lisp | 2 +- tests/filesys.pure.lisp | 9 +++++++++ version.lisp-expr | 2 +- 5 files changed, 13 insertions(+), 9 deletions(-) diff --git a/BUGS b/BUGS index 4b7bf51..24a6847 100644 --- 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 --- 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, diff --git a/src/code/filesys.lisp b/src/code/filesys.lisp index 28b09c9..2887bac 100644 --- a/src/code/filesys.lisp +++ b/src/code/filesys.lisp @@ -130,7 +130,7 @@ :complaint "#\\[ with no corresponding #\\]" :namestring namestr :offset index)) - (pattern (list :character-set + (pattern (cons :character-set (subseq namestr (1+ index) close-bracket))) diff --git a/tests/filesys.pure.lisp b/tests/filesys.pure.lisp index cdac2f3..4a5d0be 100644 --- a/tests/filesys.pure.lisp +++ b/tests/filesys.pure.lisp @@ -35,6 +35,15 @@ (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 diff --git a/version.lisp-expr b/version.lisp-expr index b119414..cab149b 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -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" -- 1.7.10.4