From 5da241082ecbe0992c0bf3a2021137d4b27a5e2a Mon Sep 17 00:00:00 2001 From: Michael Albinus Date: Sat, 28 Jun 2008 10:17:22 +0000 Subject: [PATCH] * 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'. --- lisp/ChangeLog | 10 ++++++++++ lisp/net/tramp.el | 14 ++++++++------ 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 7087c1a3606..30055bf16d5 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,13 @@ +2008-06-28 Michael Albinus + + * 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'. + + * net/tramp-ftp.el (top): Delete 'ange-ftp property from + `substitute-in-file-name' when unloading. + (tramp-ftp-file-name-handler): Set `tramp-mode' to nil. + 2008-06-28 Dan Nicolaescu * vc-dir.el (vc-dir-hide-up-to-date): Also hide empty directories. diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index 6dd76abc610..5431290da52 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el @@ -2675,9 +2675,9 @@ and gid of the corresponding user is taken. Both parameters must be integers." (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 @@ Return ATTR." (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))) -- 2.39.2