diff --git a/component.lisp b/component.lisp index 2dec0edfb0ec912ad4e6e88e0462da811364988e..fa3f72fb2a7bd3f0a4be3a38888af0aa757e6172 100644 --- a/component.lisp +++ b/component.lisp @@ -230,8 +230,8 @@ children."))) (defmethod component-relative-pathname ((component component)) ;; SOURCE-FILE-TYPE below is strictly for backward-compatibility with ASDF1. - ;; We ought to be able to extract this from the component alone with COMPONENT-TYPE. - ;; TODO: track who uses it, and have them not use it anymore; + ;; We ought to be able to extract this from the component alone with FILE-TYPE. + ;; TODO: track who uses it in Quicklisp, and have them not use it anymore; ;; maybe issue a WARNING (then eventually CERROR) if the two methods diverge? (parse-unix-namestring (or (and (slot-boundp component 'relative-pathname) diff --git a/contrib/detect-multiply-used-files.lisp b/contrib/detect-multiply-used-files.lisp index c25424d559004840e1063644293fd4e821da2da6..8e5bf714d8f211a491ef19666d0a87a2836ed323 100644 --- a/contrib/detect-multiply-used-files.lisp +++ b/contrib/detect-multiply-used-files.lisp @@ -1,4 +1,5 @@ (uiop:define-package :detect-multiply-used-files + (:nicknames :asdf/contrib/detect-multiply-used-files) (:use :asdf :uiop :common-lisp) (:export #:find-fishy-components #:register-component-files #:*file-components*)) diff --git a/doc/Makefile b/doc/Makefile index 61eb62134a1b7fdb673a3cdf5951be4f333d1a5f..0ed231abf35870c30085c4b34ab7f980d09be979 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -32,6 +32,7 @@ asdf.pdf: asdf.texinfo version.texinfo website: all rsync -lt --no-g ${webfiles} ${website} + rsync --recursive --no-g --delete asdf ${website} rsync -lt --no-g ../debian/changelog ${website}/changelog .PHONY: clean intermediate-clean manual-html diff --git a/test/test-utilities.script b/test/test-utilities.script index 80b3aea6de6b01fc52419ab9f496b6b067bbc4c3..f98d47f38fbc8ea9f5ae3a5190452551ff57185c 100644 --- a/test/test-utilities.script +++ b/test/test-utilities.script @@ -24,8 +24,8 @@ (setf dir (normalize-pathname-directory-component dir)) (loop :with head = (progn - (unless (and (consp dir) (cdr dir)) (return dir)) - (subseq dir 0 1)) + (unless (and (consp dir) (cdr dir)) (return dir)) + (subseq dir 0 1)) :with tail = (rest dir) :for (next rest) :on tail :do (unless (equal next ".") @@ -63,10 +63,12 @@ (assert-pathname-equal true dir) (setf true dir))) (assert-pathname-equal true (truename (ensure-directory-pathname file))) - (assert-pathname-equal true (nest #+(and clisp windows) (ensure-directory-pathname) - (truename* file)) - (assert-pathname-equal true (nest #+(or allegro (and clisp windows)) (ensure-directory-pathname) - (probe-file* file :truename t))) + (assert-pathname-equal true (nest #+(and clisp os-windows) (ensure-directory-pathname) + (truename* file))) + (assert-pathname-equal true + (let ((path (probe-file* file :truename t))) + #+(or allegro (and clisp os-windows)) (ensure-directory-pathname path) + #-(or allegro (and clisp os-windows)) path)) (assert-pathname-equal true (if-let (x (probe-file* file)) (ensure-absolute-pathname (ensure-directory-pathname x) 'get-pathname-defaults)))) (check-directory-doesnt-exist (file) @@ -99,7 +101,7 @@ (check-true-dpd-test)) #-(or abcl genera xcl ;; on these platforms, chdir changes D-P-D so these tests are not meaningful - (and sbcl os-windows)) ;; SBCL on Windows really hates a relative D-P-D. + (and sbcl os-windows)) ;; SBCL on Windows really hates a relative D-P-D. (progn ;; SBCL hates to get (truename #p"") when D-P-D is itself #p"". See https://bugs.launchpad.net/sbcl/+bug/1472414 (DBG "4" @@ -113,7 +115,7 @@ ;; On implementations where chdir doesn't side-effect D-P-D, we can have D-P-D be relative to GETCWD... ;; except on allegro, that hates this trick. - (with-expected-failure (#+(or allegro gcl) t) + (with-expected-failure (#+(or allegro gcl (and clisp os-windows)) t) (unless (absolute-pathname-p *default-pathname-defaults*) (DBG "6" (chdir asdf-directory) diff --git a/uiop/filesystem.lisp b/uiop/filesystem.lisp index f8cbebf595bfa86ede96003be4f5fb800d725ff3..d34a09c83cec5113361503432f27ed158b3b3796 100644 --- a/uiop/filesystem.lisp +++ b/uiop/filesystem.lisp @@ -69,6 +69,8 @@ a CL pathname satisfying all the specified constraints as per ENSURE-PATHNAME" (when (stringp p) (setf p (with-pathname-defaults () (parse-namestring p)))) (values (or (ignore-errors (truename p)) + ;; this is here because trying to find the truename of a directory pathname WITHOUT supplying + ;; a trailing directory separator, causes an error on some lisps. #+(or clisp gcl) (if-let (d (ensure-directory-pathname p)) (ignore-errors (truename d))))))) (defun safe-file-write-date (pathname) diff --git a/uiop/pathname.lisp b/uiop/pathname.lisp index d8f7ce5e5c824c28ef81369c7dff115a2b1f1321..9f511abbdd1b9741bd0f867711a95a2d975c8646 100644 --- a/uiop/pathname.lisp +++ b/uiop/pathname.lisp @@ -207,7 +207,9 @@ when merging, making or parsing pathnames") where leaving the defaults NIL or unspecified means a (NIL-PATHNAME), except on ABCL, Genera and XCL, where it remains unchanged for it doubles as current-directory." `(let ((*default-pathname-defaults* - ,(or defaults #-(or abcl genera xcl) '*nil-pathname* #+(or abcl genera) '*default-pathname-defaults*))) + ,(or defaults + #-(or abcl genera xcl) '*nil-pathname* + #+(or abcl genera xcl) '*default-pathname-defaults*))) ,@body)))