[Openmcl-devel] Regression in pathname-device in 1.3

Daniel Dickison danieldickison at gmail.com
Fri Feb 13 13:03:44 PST 2009


On Thu, Feb 12, 2009 at 5:51 PM, Gary Byers <gb at clozure.com> wrote:
> At first glance, that looks like a case where (PATHNAME stream) is
> returning a STRING, not a pathname.
>
> ? (with-open-file (f "/home/gb/ccl-init.lisp") (pathname f))
> "/home/gb/ccl-init.lisp"
>
> That's wrong; the function PATHNAME should return a PATHNAME or die trying:
>
> Index: level-1/l1-files.lisp
> ===================================================================
> --- level-1/l1-files.lisp       (revision 11733)
> +++ level-1/l1-files.lisp       (working copy)
> @@ -490,7 +490,7 @@
>     (string (string-to-pathname path))))
>
>  (defun %path-from-stream (stream)
> -  (or (stream-filename stream) (error "Can't determine pathname of ~S ."
> stream)))      ; ???
> +  (or (pathname (stream-filename stream)) (error "Can't determine pathname
> of ~S ." stream)))      ; ???
>
>  ;Like (pathname stream) except returns NIL rather than error when there's
> no
>  ;filename associated with the stream.

Yes, that makes sense.  Thanks for the fix!

(BTW, the reason I encountered this bug was because it was causing
NAMESTRING to fail on streams opened with a namestring path.  I dug as
far as PATHNAME-DEVICE, but didn't dig deep enough to get to the
PATHNAME function!)



More information about the Openmcl-devel mailing list