Adapt Tramp to changed unload behavior (bug#53632)

* lisp/net/tramp.el (tramp-autoload-file-name-handler)
(tramp-register-autoload-file-name-handlers)
(tramp-unload-file-name-handlers, tramp-unload-tramp):
* lisp/net/tramp-archive.el (tramp-archive-autoload-file-name-regexp)
(tramp-archive-autoload-file-name-handler)
(tramp-register-archive-file-name-handler):
Add `tramp-autoload' function property.
This commit is contained in:
Michael Albinus 2022-02-05 11:12:17 +01:00
parent 224aeb2877
commit 3a8e140ad1
2 changed files with 12 additions and 0 deletions

View file

@ -190,6 +190,8 @@ It must be supported by libarchive(3).")
"\\)" ;; \1
"\\(" "/" ".*" "\\)" "\\'"))) ;; \2
(put #'tramp-archive-autoload-file-name-regexp 'tramp-autoload t)
;; In older Emacsen (prior 27.1), `tramp-archive-autoload-file-name-regexp'
;; is not autoloaded. So we cannot expect it to be known in
;; tramp-loaddefs.el. But it exists, when tramp-archive.el is loaded.
@ -366,6 +368,8 @@ arguments to pass to the OPERATION."
(tramp-archive-autoload t))
(apply #'tramp-autoload-file-name-handler operation args)))))
(put #'tramp-archive-autoload-file-name-handler 'tramp-autoload t)
;;;###autoload
(progn (defun tramp-register-archive-file-name-handler ()
"Add archive file name handler to `file-name-handler-alist'."
@ -375,6 +379,8 @@ arguments to pass to the OPERATION."
#'tramp-archive-autoload-file-name-handler))
(put #'tramp-archive-autoload-file-name-handler 'safe-magic t))))
(put #'tramp-register-archive-file-name-handler 'tramp-autoload t)
;;;###autoload
(progn
(add-hook 'after-init-hook #'tramp-register-archive-file-name-handler)

View file

@ -2742,6 +2742,8 @@ Falls back to normal file name handler if no Tramp file name handler exists."
(load "tramp" 'noerror 'nomessage)))
(apply operation args)))
(put #'tramp-autoload-file-name-handler 'tramp-autoload t)
;; `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.
@ -2753,6 +2755,7 @@ Falls back to normal file name handler if no Tramp file name handler exists."
#'tramp-autoload-file-name-handler))
(put #'tramp-autoload-file-name-handler 'safe-magic t)))
(put #'tramp-register-autoload-file-name-handlers 'tramp-autoload t)
;;;###autoload (tramp-register-autoload-file-name-handlers)
(defun tramp-use-absolute-autoload-file-names ()
@ -2866,6 +2869,7 @@ whether HANDLER is to be called. Add operations defined in
(string-prefix-p "tramp-" (symbol-name (cdr fnh))))
(setq file-name-handler-alist (delq fnh file-name-handler-alist))))))
(put #'tramp-unload-file-name-handlers 'tramp-autoload t)
(add-hook 'tramp-unload-hook #'tramp-unload-file-name-handlers)
;;; File name handler functions for completion mode:
@ -5966,6 +5970,8 @@ BODY is the backend specific code."
;; Maybe it's not loaded yet.
(ignore-errors (unload-feature 'tramp 'force))))
(put #'tramp-unload-tramp 'tramp-autoload t)
(provide 'tramp)
(run-hooks 'tramp--startup-hook)