branch: externals/tramp
commit fa1743d8962537cd78ada04578cacfcaa0486678
Author: Michael Albinus <[email protected]>
Commit: Michael Albinus <[email protected]>

    Load also tramp-compat in autoloader
---
 tramp.el | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/tramp.el b/tramp.el
index d578cb4..143d433 100644
--- a/tramp.el
+++ b/tramp.el
@@ -2577,21 +2577,25 @@ Falls back to normal file name handler if no Tramp file 
name handler exists."
   (tramp-unload-file-name-handlers)
   (when tramp-mode
     ;; We cannot use `tramp-compat-temporary-file-directory' here due
-    ;; to autoload.
+    ;; to autoload.  When installing Tramp's GNU ELPA package, there
+    ;; might be an older, incompatible version active.  We try to
+    ;; overload this.
     (let ((default-directory temporary-file-directory))
+      (load "tramp-compat" 'noerror 'nomessage)))
       (load "tramp" 'noerror 'nomessage)))
   (apply operation args)))
 
 ;; `tramp-autoload-file-name-handler' must be registered before
 ;; evaluation of site-start and init files, because there might exist
-;; remote files already, f.e. files kept via recentf-mode.
+;; remote files already, f.e. files kept via recentf-mode.  We must
+;; also handle the case that autoloads are revaluated, for example
+;; when installing Tramp as GNU ELPA package.
 ;;;###autoload
 (progn (defun tramp-register-autoload-file-name-handlers ()
   "Add Tramp file name handlers to `file-name-handler-alist' during autoload."
-  (unless (rassq 'tramp-file-name-handler file-name-handler-alist)
-    (add-to-list 'file-name-handler-alist
-                (cons tramp-autoload-file-name-regexp
-                      'tramp-autoload-file-name-handler)))
+  (add-to-list 'file-name-handler-alist
+              (cons tramp-autoload-file-name-regexp
+                    'tramp-autoload-file-name-handler))
   (put #'tramp-autoload-file-name-handler 'safe-magic t)))
 
 ;;;###autoload (tramp-register-autoload-file-name-handlers)

Reply via email to