diff options
| author | Michael Albinus | 2017-11-05 20:08:05 +0100 |
|---|---|---|
| committer | Michael Albinus | 2017-11-05 20:08:05 +0100 |
| commit | ca2d94ba61dee678f85bfc7299d167e7219e6d8f (patch) | |
| tree | 10dd2860d7fc05945d738c8a2b26eaaa96caca7b /lisp | |
| parent | 709478eaa866e10a4600f8d8829ab8c79200d45e (diff) | |
| download | emacs-ca2d94ba61dee678f85bfc7299d167e7219e6d8f.tar.gz emacs-ca2d94ba61dee678f85bfc7299d167e7219e6d8f.zip | |
Do not load Tramp unless `tramp-mode' is non-nil
* lisp/net/tramp.el (tramp-autoload-file-name-handler): Load Tramp only if
`tramp-mode' is non-nil.
(tramp-unload-file-name-handlers): Unload also
`tramp-autoload-file-name-handler'.
* test/lisp/net/tramp-tests.el (tramp-test42-delay-load): Extend test.
Diffstat (limited to 'lisp')
| -rw-r--r-- | lisp/net/tramp.el | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index 67192e32401..3d5dcbdbb14 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el | |||
| @@ -2305,8 +2305,10 @@ Falls back to normal file name handler if no Tramp file name handler exists." | |||
| 2305 | ;;;###autoload | 2305 | ;;;###autoload |
| 2306 | (progn (defun tramp-autoload-file-name-handler (operation &rest args) | 2306 | (progn (defun tramp-autoload-file-name-handler (operation &rest args) |
| 2307 | "Load Tramp file name handler, and perform OPERATION." | 2307 | "Load Tramp file name handler, and perform OPERATION." |
| 2308 | (let ((default-directory temporary-file-directory)) | 2308 | (if tramp-mode |
| 2309 | (load "tramp" 'noerror 'nomessage)) | 2309 | (let ((default-directory temporary-file-directory)) |
| 2310 | (load "tramp" 'noerror 'nomessage)) | ||
| 2311 | (tramp-unload-file-name-handlers)) | ||
| 2310 | (apply operation args))) | 2312 | (apply operation args))) |
| 2311 | 2313 | ||
| 2312 | ;; `tramp-autoload-file-name-handler' must be registered before | 2314 | ;; `tramp-autoload-file-name-handler' must be registered before |
| @@ -2422,12 +2424,13 @@ Add operations defined in `HANDLER-alist' to `tramp-file-name-handler'." | |||
| 2422 | (equal (apply operation args) operation)))) | 2424 | (equal (apply operation args) operation)))) |
| 2423 | 2425 | ||
| 2424 | ;;;###autoload | 2426 | ;;;###autoload |
| 2425 | (defun tramp-unload-file-name-handlers () | 2427 | (progn (defun tramp-unload-file-name-handlers () |
| 2426 | "Unload Tramp file name handlers from `file-name-handler-alist'." | 2428 | "Unload Tramp file name handlers from `file-name-handler-alist'." |
| 2427 | (dolist (fnh '(tramp-file-name-handler | 2429 | (dolist (fnh '(tramp-file-name-handler |
| 2428 | tramp-completion-file-name-handler)) | 2430 | tramp-completion-file-name-handler |
| 2431 | tramp-autoload-file-name-handler)) | ||
| 2429 | (let ((a1 (rassq fnh file-name-handler-alist))) | 2432 | (let ((a1 (rassq fnh file-name-handler-alist))) |
| 2430 | (setq file-name-handler-alist (delq a1 file-name-handler-alist))))) | 2433 | (setq file-name-handler-alist (delq a1 file-name-handler-alist)))))) |
| 2431 | 2434 | ||
| 2432 | (add-hook 'tramp-unload-hook 'tramp-unload-file-name-handlers) | 2435 | (add-hook 'tramp-unload-hook 'tramp-unload-file-name-handlers) |
| 2433 | 2436 | ||