diff options
Diffstat (limited to 'lisp')
| -rw-r--r-- | lisp/net/tramp.el | 27 |
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. | ||
| 2215 | This avoids problems during autoload, when `load-path' contains | ||
| 2216 | remote 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, |