aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/net/tramp.el27
1 files changed, 26 insertions, 1 deletions
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index e329f921e03..8d81ac64aa2 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -2075,7 +2075,7 @@ Falls back to normal file name handler if no Tramp file name handler exists."
2075 ;; are already loaded. This results in 2075 ;; are already loaded. This results in
2076 ;; recursive loading. Therefore, we load the 2076 ;; recursive loading. Therefore, we load the
2077 ;; Tramp packages locally. 2077 ;; Tramp packages locally.
2078 (when (and (listp sf) (eq (car sf) 'autoload)) 2078 (when (autoloadp sf)
2079 (let ((default-directory 2079 (let ((default-directory
2080 (tramp-compat-temporary-file-directory))) 2080 (tramp-compat-temporary-file-directory)))
2081 (load (cadr sf) 'noerror 'nomessage))) 2081 (load (cadr sf) 'noerror 'nomessage)))
@@ -2210,6 +2210,31 @@ Falls back to normal file name handler if no Tramp file name handler exists."
2210;;;###autoload 2210;;;###autoload
2211(tramp-register-autoload-file-name-handlers) 2211(tramp-register-autoload-file-name-handlers)
2212 2212
2213(defun tramp-use-absolute-autoload-file-names ()
2214 "Change Tramp autoload objects to use absolute file names.
2215This avoids problems during autoload, when `load-path' contains
2216remote file names."
2217 ;; We expect all other Tramp files in the same directory as tramp.el.
2218 (let* ((dir (expand-file-name (file-name-directory (locate-library "tramp"))))
2219 (files-regexp
2220 (format
2221 "^%s$"
2222 (regexp-opt
2223 (mapcar
2224 'file-name-sans-extension
2225 (directory-files dir nil "^tramp.+\\.elc?$"))
2226 'paren))))
2227 (mapatoms
2228 (lambda (atom)
2229 (when (and (functionp atom)
2230 (autoloadp (symbol-function atom))
2231 (string-match files-regexp (cadr (symbol-function atom))))
2232 (ignore-errors
2233 (setf (cadr (symbol-function atom))
2234 (expand-file-name (cadr (symbol-function atom)) dir))))))))
2235
2236(eval-after-load 'tramp (tramp-use-absolute-autoload-file-names))
2237
2213(defun tramp-register-file-name-handlers () 2238(defun tramp-register-file-name-handlers ()
2214 "Add Tramp file name handlers to `file-name-handler-alist'." 2239 "Add Tramp file name handlers to `file-name-handler-alist'."
2215 ;; Remove autoloaded handlers from file name handler alist. Useful, 2240 ;; Remove autoloaded handlers from file name handler alist. Useful,