rename SB-SIMPLE-STREAMS utility function
authorChristophe Rhodes <c.rhodes@gold.ac.uk>
Mon, 9 Sep 2013 14:09:42 +0000 (15:09 +0100)
committerChristophe Rhodes <c.rhodes@gold.ac.uk>
Mon, 9 Sep 2013 14:09:42 +0000 (15:09 +0100)
At least, I think it was simply intended to be a utility function,
but the FILE-NAMESTRING name is unfortunate, as that's a CL function,
and (for other reasons) SB-SIMPLE-STREAMS claims to implement CL in
the package lock sense, so this was not noticed at the time.

This fixes lp#884603; I am unconvinced that the namestring logic is
actually correct (keeping the distinction between NAMESTRING and
NATIVE-NAMESTRING clear) but I'll wait for an actual user to complain
about that before thinking too hard.

NEWS
contrib/sb-simple-streams/file.lisp
contrib/sb-simple-streams/impl.lisp
contrib/sb-simple-streams/iodefs.lisp

diff --git a/NEWS b/NEWS
index dcf1994..fa9a742 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -25,6 +25,8 @@ changes relative to sbcl-1.1.11:
     (thanks to Jan Moringen, lp#1179858)
   * bug fix: the compiler-macro for MAKE-INSTANCE when emitting "fallback"
     constructors handles non-KEYWORD initialization arguments more correctly.
+  * bug fix: loading the SB-SIMPLE-STREAMS contributed module no longer
+    clobbers FILE-NAMESTRING.  (thanks to Anton Kovalenko, lp#884603)
   
 changes in sbcl-1.1.11 relative to sbcl-1.1.10:
   * enhancement: support building the manual under texinfo version 5.
index 823d321..5602b28 100644 (file)
   (let ((pathname (getf options :filename)))
     (with-stream-class (probe-simple-stream stream)
       (add-stream-instance-flags stream :simple)
-      (when (sb-unix:unix-access (file-namestring pathname) sb-unix:f_ok)
+      (when (sb-unix:unix-access (%file-namestring pathname) sb-unix:f_ok)
         (setf (sm pathname stream) pathname)
         t))))
index 3512edf..1367ae3 100644 (file)
   (if (typep stream 'file-simple-stream)
       (with-stream-class (file-simple-stream stream)
         (setf (sm pathname stream) new-name)
-        (setf (sm filename stream) (file-namestring new-name))
+        (setf (sm filename stream) (%file-namestring new-name))
         t)
       nil))
 
@@ -1103,7 +1103,7 @@ is supported only on simple-streams."
      (cond (new-name
             (setf (sb-impl::fd-stream-pathname stream) new-name)
             (setf (sb-impl::fd-stream-file stream)
-                  (file-namestring new-name))
+                  (%file-namestring new-name))
             t)
            (t
             (sb-impl::fd-stream-pathname stream))))))
index 6925e3d..cb006ff 100644 (file)
@@ -14,7 +14,7 @@
 
 (in-package "SB-SIMPLE-STREAMS")
 
-(defun file-namestring (pathname)
+(defun %file-namestring (pathname)
   (sb-ext:native-namestring (sb-int:physicalize-pathname pathname) :as-file t))
 
 (defmacro def-stream-class (name superclasses slots &rest options)