0.9.18.42:
authorJuho Snellman <jsnell@iki.fi>
Thu, 9 Nov 2006 20:34:30 +0000 (20:34 +0000)
committerJuho Snellman <jsnell@iki.fi>
Thu, 9 Nov 2006 20:34:30 +0000 (20:34 +0000)
        TRANSLATE-PATHNAME was selecting the version component from
        FROM-WILDCARD rather than SOURCE. (Reported by Josip Gracin,
        apparently causing trouble for cl-darcs).

NEWS
src/code/target-pathname.lisp
tests/pathnames.impure.lisp
version.lisp-expr

diff --git a/NEWS b/NEWS
index 950ae47..8d491e7 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -24,6 +24,8 @@ changes in sbcl-0.9.19 (1.0.0?) relative to sbcl-0.9.18:
   * bug fix: fix thread-safety problems in the type system (generally 
     manifesting as nonsensical errors like "STRING is a bad type specifier 
     for sequences" or "The value 1 is not of type FIXNUM")
+  * bug fix: version components are handled correctly in TRANSLATE-PATHNAME
+    (reported by Josip Gracin)
   * Improvements to the Windows port:
     ** floating point exceptions are now reported correctly.
     ** stack exhaustion detection works partially.
index 33f4d8d..6f8f1a0 100644 (file)
@@ -1270,8 +1270,9 @@ PARSE-NAMESTRING."
                (frob %pathname-name)
                (frob %pathname-type)
                (if (eq from-host *unix-host*)
-                   (if (eq (%pathname-version to) :wild)
-                       (%pathname-version from)
+                   (if (or (eq (%pathname-version to) :wild)
+                           (eq (%pathname-version to) nil))
+                       (%pathname-version source)
                        (%pathname-version to))
                    (frob %pathname-version)))))))))
 \f
index 927f288..945d25f 100644 (file)
 \f
 (enough-namestring #p".a*")
 \f
+
+(assert (eq 99
+            (pathname-version
+             (translate-pathname
+              (make-pathname :name "foo" :type "bar" :version 99)
+              (make-pathname :name :wild :type :wild :version :wild)
+              (make-pathname :name :wild :type :wild :version :wild)))))
+
+(assert (eq 99
+            (pathname-version
+             (translate-pathname
+              (make-pathname :name "foo" :type "bar" :version 99)
+              (make-pathname :name :wild :type :wild :version :wild)
+              (make-pathname :name :wild :type :wild :version nil)))))
+
 ;;;; success
index 71d0b42..3550adb 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.18.41"
+"0.9.18.42"