Mercurial > emacs
changeset 96392:61ba354c1338
* net/tramp.el (tramp-handle-file-modes): Handle symlinks.
(tramp-convert-file-attributes): Convert symlinks only when
returned from `tramp-handle-file-attributes-with-stat'.
author | Michael Albinus <michael.albinus@gmx.de> |
---|---|
date | Sat, 28 Jun 2008 10:16:37 +0000 |
parents | c114f6a4c246 |
children | 269a30341454 |
files | lisp/net/tramp.el |
diffstat | 1 files changed, 8 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/net/tramp.el Sat Jun 28 10:15:00 2008 +0000 +++ b/lisp/net/tramp.el Sat Jun 28 10:16:37 2008 +0000 @@ -2675,9 +2675,9 @@ (defun tramp-handle-file-modes (filename) "Like `file-modes' for Tramp files." - (when (file-exists-p filename) - (tramp-mode-string-to-int - (nth 8 (file-attributes filename))))) + (let ((truename (or (file-truename filename) filename))) + (when (file-exists-p truename) + (tramp-mode-string-to-int (nth 8 (file-attributes truename)))))) (defun tramp-handle-file-directory-p (filename) "Like `file-directory-p' for Tramp files." @@ -6627,9 +6627,11 @@ (unless (stringp (nth 8 attr)) (setcar (nthcdr 8 attr) (tramp-file-mode-from-int (nth 8 attr)))) ;; Convert directory indication bit. - (if (string-match "^d" (nth 8 attr)) - (setcar attr t) - (if (and (listp (car attr)) (stringp (caar attr)) + (when (string-match "^d" (nth 8 attr)) + (setcar attr t)) + ;; Convert symlink from `tramp-handle-file-attributes-with-stat'. + (when (consp (car attr)) + (if (and (stringp (caar attr)) (string-match ".+ -> .\\(.+\\)." (caar attr))) (setcar attr (match-string 1 (caar attr))) (setcar attr nil)))