Update of /cvsroot/sbcl/sbcl/src/code
In directory usw-pr-cvs1:/tmp/cvs-serv17678/src/code
Modified Files:
filesys.lisp target-pathname.lisp
Log Message:
0.7.9.35:
Commit change to TRUENAME behaviour on files naming directories
... shout if anything breaks, please!
Index: filesys.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/code/filesys.lisp,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -d -r1.38 -r1.39
--- filesys.lisp 15 Sep 2002 14:20:24 -0000 1.38
+++ filesys.lisp 7 Nov 2002 14:59:33 -0000 1.39
@@ -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
Index: target-pathname.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/code/target-pathname.lisp,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -d -r1.31 -r1.32
--- target-pathname.lisp 17 Sep 2002 19:52:29 -0000 1.31
+++ target-pathname.lisp 7 Nov 2002 14:59:33 -0000 1.32
@@ -909,7 +909,7 @@
(declare (type pathname-designator in-pathname))
(with-pathname (pathname in-pathname)
(with-pathname (wildname in-wildname)
- (macrolet ((frob (field &optional (op 'components-match ))
+ (macrolet ((frob (field &optional (op 'components-match))
`(or (null (,field wildname))
(,op (,field pathname) (,field wildname)))))
(and (or (null (%pathname-host wildname))
|