0.8.13.77:
authorChristophe Rhodes <csr21@cam.ac.uk>
Wed, 18 Aug 2004 17:23:06 +0000 (17:23 +0000)
committerChristophe Rhodes <csr21@cam.ac.uk>
Wed, 18 Aug 2004 17:23:06 +0000 (17:23 +0000)
Some bugfixes
... make failures of REQUIRE printable.  How did that happen?
... patch from Dave Roberts (sbcl-devel 2004-08-18) for
sb-bsd-sockets export
... fix for ENOUGH-NAMESTRING, allowing :relative pathnames
to be namestringized.

NEWS
contrib/sb-bsd-sockets/defpackage.lisp
src/code/condition.lisp
src/code/filesys.lisp
tests/pathnames.impure.lisp
version.lisp-expr

diff --git a/NEWS b/NEWS
index 96a7065..6f89571 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -32,6 +32,8 @@ changes in sbcl-0.8.14 relative to sbcl-0.8.13:
   * bug fix: pass the right initargs to :BEFORE or :AFTER methods on
     SHARED-INITIALIZE or INITIALIZE-INSTANCE in optimized
     MAKE-INSTANCE constructors.  (reported by Axel Schairer for cmucl)
+  * bug fix: pathnames with relative directory components can be
+    represented relative to default pathnames.
   * optimization: in taking the GCD of bignums, reduce the two bignums
     to approximately the same size (using Euclid's algorithm) before
     applying the more sophisticated binary GCD.  (thanks to Juho
index a99bea2..71d04f8 100644 (file)
@@ -42,7 +42,7 @@
            get-host-by-name get-host-by-address
            host-ent
            host-ent-addresses host-ent-address
-           host-ent aliases host-ent-name
+           host-ent-aliases host-ent-name
            name-service-error
            ;; not sure if these are really good names or not
            netdb-internal-error
index 7c26d48..7d3f7a7 100644 (file)
      (destructuring-bind (type data) (cdr reference)
        (ecase type
         (:node (format stream "Node ~S" data))
-        (:variable (format stream "Variable ~S" data)))))
-    ;; FIXME: other documents (e.g. AMOP, Franz documentation :-)
+        (:variable (format stream "Variable ~S" data))
+        (:function (format stream "Function ~S" data)))))
+    ;; FIXME: other documents (e.g. CLIM, Franz documentation :-)
     ))
 (define-condition reference-condition ()
   ((references :initarg :references :reader reference-condition-references)))
index 1d243d8..3bf1a5a 100644 (file)
             (defaults-directory (%pathname-directory defaults))
             (prefix-len (length defaults-directory))
             (result-directory
-             (cond ((and (> prefix-len 1)
+             (cond ((null pathname-directory) '(:relative))
+                   ((eq (car pathname-directory) :relative)
+                    pathname-directory)
+                   ((and (> prefix-len 1)
                          (>= (length pathname-directory) prefix-len)
                          (compare-component (subseq pathname-directory
                                                     0 prefix-len)
                     ;; We are an absolute pathname, so we can just use it.
                     pathname-directory)
                    (t
-                    ;; We are a relative directory. So we lose.
-                    (lose)))))
+                    (bug "Bad fallthrough in ~S" 'unparse-unix-enough)))))
        (strings (unparse-unix-directory-list result-directory)))
       (let* ((pathname-type (%pathname-type pathname))
             (type-needed (and pathname-type
index a58c08e..b00b1f9 100644 (file)
     (when (probe-file test)
       (delete-file test))))
 \f
+;;; ENOUGH-NAMESTRING should probably not fail when the namestring in
+;;; question has a :RELATIVE pathname.
+(assert (equal (enough-namestring #p"foo" #p"./") "foo"))
+
 ;;;; success
 (quit :unix-status 104)
index 1da28e9..bf049a5 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.8.13.76"
+"0.8.13.77"