From: Christophe Rhodes Date: Wed, 18 Aug 2004 17:23:06 +0000 (+0000) Subject: 0.8.13.77: X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=d1287b8413141509ca384971f615dde98979583e;p=sbcl.git 0.8.13.77: 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. --- diff --git a/NEWS b/NEWS index 96a7065..6f89571 100644 --- 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 diff --git a/contrib/sb-bsd-sockets/defpackage.lisp b/contrib/sb-bsd-sockets/defpackage.lisp index a99bea2..71d04f8 100644 --- a/contrib/sb-bsd-sockets/defpackage.lisp +++ b/contrib/sb-bsd-sockets/defpackage.lisp @@ -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 diff --git a/src/code/condition.lisp b/src/code/condition.lisp index 7c26d48..7d3f7a7 100644 --- a/src/code/condition.lisp +++ b/src/code/condition.lisp @@ -816,8 +816,9 @@ (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))) diff --git a/src/code/filesys.lisp b/src/code/filesys.lisp index 1d243d8..3bf1a5a 100644 --- a/src/code/filesys.lisp +++ b/src/code/filesys.lisp @@ -375,7 +375,10 @@ (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) @@ -387,8 +390,7 @@ ;; 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 diff --git a/tests/pathnames.impure.lisp b/tests/pathnames.impure.lisp index a58c08e..b00b1f9 100644 --- a/tests/pathnames.impure.lisp +++ b/tests/pathnames.impure.lisp @@ -331,5 +331,9 @@ (when (probe-file test) (delete-file test)))) +;;; 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) diff --git a/version.lisp-expr b/version.lisp-expr index 1da28e9..bf049a5 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.8.13.76" +"0.8.13.77"