X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Ffilesys.lisp;h=c34f73267a3525575573cad0554ae8fb5a7e28c4;hb=2db3b6b4cb740d5b6512459c223859f747807b09;hp=2841bf5509df4310d1fd8274dbc23a7e4e25bba7;hpb=69cd16d7335a7f66985752b84f78d18e45f9783e;p=sbcl.git diff --git a/src/code/filesys.lisp b/src/code/filesys.lisp index 2841bf5..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)))) + (truename (truename match))) (setf (gethash (namestring truename) truenames) truename))) (mapcar #'cdr