emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master a344d99: Some minor Tramp cleanups


From: Michael Albinus
Subject: [Emacs-diffs] master a344d99: Some minor Tramp cleanups
Date: Thu, 22 Nov 2018 10:29:35 -0500 (EST)

branch: master
commit a344d9937bb7edfbfbea13dca1569fcdcad25ac2
Author: Michael Albinus <address@hidden>
Commit: Michael Albinus <address@hidden>

    Some minor Tramp cleanups
    
    * lisp/net/tramp-adb.el (tramp-adb-file-name-p):
    * lisp/net/tramp-ftp.el (tramp-ftp-file-name-p):
    * lisp/net/tramp-smb.el (tramp-smb-file-name-p): Make it more robust.
    
    * lisp/net/tramp.el (tramp-handle-file-truename): Cache only the
    localname.
---
 lisp/net/tramp-adb.el  |  5 +++--
 lisp/net/tramp-ftp.el  |  5 +++--
 lisp/net/tramp-gvfs.el |  2 +-
 lisp/net/tramp-smb.el  |  5 +++--
 lisp/net/tramp.el      | 53 ++++++++++++++++++++++++++------------------------
 5 files changed, 38 insertions(+), 32 deletions(-)

diff --git a/lisp/net/tramp-adb.el b/lisp/net/tramp-adb.el
index 36374f8..00c6ad4 100644
--- a/lisp/net/tramp-adb.el
+++ b/lisp/net/tramp-adb.el
@@ -173,8 +173,9 @@ It is used for TCP/IP devices."
 ;;;###tramp-autoload
 (defsubst tramp-adb-file-name-p (filename)
   "Check if it's a filename for ADB."
-  (let ((v (tramp-dissect-file-name filename)))
-    (string= (tramp-file-name-method v) tramp-adb-method)))
+  (and (tramp-tramp-file-p filename)
+       (string= (tramp-file-name-method (tramp-dissect-file-name filename))
+               tramp-adb-method)))
 
 ;;;###tramp-autoload
 (defun tramp-adb-file-name-handler (operation &rest args)
diff --git a/lisp/net/tramp-ftp.el b/lisp/net/tramp-ftp.el
index 983f168..5d8b56e 100644
--- a/lisp/net/tramp-ftp.el
+++ b/lisp/net/tramp-ftp.el
@@ -183,8 +183,9 @@ pass to the OPERATION."
 ;;;###tramp-autoload
 (defsubst tramp-ftp-file-name-p (filename)
   "Check if it's a filename that should be forwarded to Ange-FTP."
-  (string= (tramp-file-name-method (tramp-dissect-file-name filename))
-          tramp-ftp-method))
+  (and (tramp-tramp-file-p filename)
+       (string= (tramp-file-name-method (tramp-dissect-file-name filename))
+               tramp-ftp-method)))
 
 ;;;###tramp-autoload
 (add-to-list 'tramp-foreign-file-name-handler-alist
diff --git a/lisp/net/tramp-gvfs.el b/lisp/net/tramp-gvfs.el
index c150edf..fb687f0 100644
--- a/lisp/net/tramp-gvfs.el
+++ b/lisp/net/tramp-gvfs.el
@@ -2088,7 +2088,7 @@ This uses \"avahi-browse\" in case D-Bus is not enabled 
in Avahi."
 ;;; TODO:
 
 ;; * (Customizable) unmount when exiting Emacs.  See tramp-archive.el.
-
+;;
 ;; * Host name completion for existing mount points (afp-server,
 ;;   smb-server, google-drive, nextcloud) or via smb-network or network.
 ;;
diff --git a/lisp/net/tramp-smb.el b/lisp/net/tramp-smb.el
index a97b801..eadb402 100644
--- a/lisp/net/tramp-smb.el
+++ b/lisp/net/tramp-smb.el
@@ -321,8 +321,9 @@ This can be used to disable echo etc."
 ;;;###tramp-autoload
 (defsubst tramp-smb-file-name-p (filename)
   "Check if it's a filename for SMB servers."
-  (string= (tramp-file-name-method (tramp-dissect-file-name filename))
-          tramp-smb-method))
+  (and (tramp-tramp-file-p filename)
+       (string= (tramp-file-name-method (tramp-dissect-file-name filename))
+               tramp-smb-method)))
 
 ;;;###tramp-autoload
 (defun tramp-smb-file-name-handler (operation &rest args)
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index 8362d78..97f931a 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -3301,31 +3301,34 @@ User is always nil."
         (numchase-limit 20)
         symlink-target)
      (with-parsed-tramp-file-name result v1
-       (with-tramp-file-property v1 v1-localname "file-truename"
-        (while (and (setq symlink-target (file-symlink-p result))
-                    (< numchase numchase-limit))
-          (setq numchase (1+ numchase)
-                result
-                (with-parsed-tramp-file-name (expand-file-name result) v2
-                  (tramp-make-tramp-file-name
-                   v2
-                   (funcall
-                    (if (tramp-compat-file-name-quoted-p v2-localname)
-                        'tramp-compat-file-name-quote 'identity)
-
-                    (if (stringp symlink-target)
-                        (if (file-remote-p symlink-target)
-                            (let (file-name-handler-alist)
-                              (tramp-compat-file-name-quote symlink-target))
-                          (expand-file-name
-                           symlink-target (file-name-directory v2-localname)))
-                      v2-localname))
-                   'nohop)))
-          (when (>= numchase numchase-limit)
-            (tramp-error
-             v1 'file-error
-             "Maximum number (%d) of symlinks exceeded" numchase-limit)))
-        (directory-file-name result))))))
+       ;; We cache only the localname.
+       (tramp-make-tramp-file-name
+       v1
+       (with-tramp-file-property v1 v1-localname "file-truename"
+         (while (and (setq symlink-target (file-symlink-p result))
+                     (< numchase numchase-limit))
+           (setq numchase (1+ numchase)
+                 result
+                 (with-parsed-tramp-file-name (expand-file-name result) v2
+                   (tramp-make-tramp-file-name
+                    v2
+                    (funcall
+                     (if (tramp-compat-file-name-quoted-p v2-localname)
+                         'tramp-compat-file-name-quote 'identity)
+
+                     (if (stringp symlink-target)
+                         (if (file-remote-p symlink-target)
+                             (let (file-name-handler-alist)
+                               (tramp-compat-file-name-quote symlink-target))
+                           (expand-file-name
+                            symlink-target (file-name-directory v2-localname)))
+                       v2-localname))
+                    'nohop)))
+           (when (>= numchase numchase-limit)
+             (tramp-error
+              v1 'file-error
+              "Maximum number (%d) of symlinks exceeded" numchase-limit)))
+         (file-local-name (directory-file-name result))))))))
 
 (defun tramp-handle-find-backup-file-name (filename)
   "Like `find-backup-file-name' for Tramp files."



reply via email to

[Prev in Thread] Current Thread [Next in Thread]