From eb4330788f7b527b7d93a434a6fbb584c0563456 Mon Sep 17 00:00:00 2001 From: Christophe Rhodes Date: Mon, 28 Aug 2006 12:14:30 +0000 Subject: [PATCH] 0.9.16.2: Fix bug found by compiling with both a buggy funcallable-instance type under intersection and a patch for generic (Gray-like) sequences. Weird, huh? ... make sure we have a sequence before using sequence functions in ENOUGH-NAMESTRING-like functions. --- NEWS | 4 ++++ src/code/unix-pathname.lisp | 1 + src/code/win32-pathname.lisp | 1 + tests/pathnames.impure.lisp | 2 ++ version.lisp-expr | 2 +- 5 files changed, 9 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index 95aa1e6..4bd12e3 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,8 @@ ;;;; -*- coding: utf-8; -*- +changes in sbcl-0.9.17 (0.9.99?) relative to sbcl-0.9.15: + * bug fix: ENOUGH-NAMESTRING on pathnames with no name and a pattern + for a type now works. + changes in sbcl-0.9.16 relative to sbcl-0.9.15: * feature: implemented the READER-METHOD-CLASS and WRITER-METHOD-CLASS portion of the Class Initialization Protocol diff --git a/src/code/unix-pathname.lisp b/src/code/unix-pathname.lisp index 302fce0..e0ceb42 100644 --- a/src/code/unix-pathname.lisp +++ b/src/code/unix-pathname.lisp @@ -305,6 +305,7 @@ (when name-needed (unless pathname-name (lose)) (when (and (null pathname-type) + (typep pathname-name 'simple-base-string) (position #\. pathname-name :start 1)) (error "too many dots in the name: ~S" pathname)) (strings (unparse-unix-piece pathname-name))) diff --git a/src/code/win32-pathname.lisp b/src/code/win32-pathname.lisp index 4a3d10b..14c5b2f 100644 --- a/src/code/win32-pathname.lisp +++ b/src/code/win32-pathname.lisp @@ -333,6 +333,7 @@ (when name-needed (unless pathname-name (lose)) (when (and (null pathname-type) + (typep pathname-name 'simple-base-string) (position #\. pathname-name :start 1)) (error "too many dots in the name: ~S" pathname)) (strings (unparse-unix-piece pathname-name))) diff --git a/tests/pathnames.impure.lisp b/tests/pathnames.impure.lisp index 845d70f..927f288 100644 --- a/tests/pathnames.impure.lisp +++ b/tests/pathnames.impure.lisp @@ -408,4 +408,6 @@ (let ((*default-pathname-defaults* #p"quux/")) (compile-file-pathname "bar.lisp")))) +(enough-namestring #p".a*") + ;;;; success diff --git a/version.lisp-expr b/version.lisp-expr index b8cef80..7669fa4 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.16.1" +"0.9.16.2" -- 1.7.10.4