X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Ffilesys.lisp;h=c34f73267a3525575573cad0554ae8fb5a7e28c4;hb=d68f3f83e6c5b9bed9789279cbae346f240488cc;hp=bde23dcb7fb2d6a1640cdd4ad8d011f73fdea31b;hpb=8fa3b333d2b37f45c3702f478f784b8c6f491080;p=sbcl.git diff --git a/src/code/filesys.lisp b/src/code/filesys.lisp index bde23dc..c34f732 100644 --- a/src/code/filesys.lisp +++ b/src/code/filesys.lisp @@ -618,7 +618,7 @@ (unless (or (null type) (eq type :unspecific)) (/noshow0 "tweaking FILE for more-or-less-:UNSPECIFIC case") (setf file (concatenate 'string file "." type))) - (unless (member version '(nil :newest :wild)) + (unless (member version '(nil :newest :wild :unspecific)) (/noshow0 "tweaking FILE for more-or-less-:WILD case") (setf file (concatenate 'string file "." (quick-integer-to-string version)))) @@ -725,8 +725,11 @@ (when (and namestring (sb!unix:unix-file-kind namestring t)) (let ((trueishname (sb!unix:unix-resolve-links namestring))) (when trueishname - (let ((*ignore-wildcards* t)) - (pathname (sb!unix:unix-simplify-pathname trueishname)))))))) + (let* ((*ignore-wildcards* t) + (name (sb!unix:unix-simplify-pathname trueishname))) + (if (eq (sb!unix:unix-file-kind name) :directory) + (pathname (concatenate 'string name "/")) + (pathname name)))))))) ;;;; miscellaneous other operations @@ -824,14 +827,10 @@ ;; (which can arise when e.g. multiple symlinks map to the ;; same truename). (truenames (make-hash-table :test #'equal)) - (merged-pathname (merge-pathnames pathname - *default-pathname-defaults*))) + (merged-pathname (merge-pathnames pathname))) (!enumerate-matches (match merged-pathname) - (let ((*ignore-wildcards* t) - (truename (truename (if (eq (sb!unix:unix-file-kind match) - :directory) - (concatenate 'string match "/") - match)))) + (let* ((*ignore-wildcards* t) + (truename (truename match))) (setf (gethash (namestring truename) truenames) truename))) (mapcar #'cdr