From 50d18bb6ea7dae575c2b679b63fc6b4b95bdf922 Mon Sep 17 00:00:00 2001 From: Michael Albinus Date: Sun, 18 Dec 2022 16:42:51 +0100 Subject: [PATCH] Make tramp-archive autoloads robust for older Emacs versions * lisp/net/tramp-archive.el (tramp-archive-file-name-regexp): Use `eval-when-compile'. Set it explicitly for older Emacs versions. --- lisp/net/tramp-archive.el | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lisp/net/tramp-archive.el b/lisp/net/tramp-archive.el index 9c1e78d6b0b..49b0c0bb6b4 100644 --- a/lisp/net/tramp-archive.el +++ b/lisp/net/tramp-archive.el @@ -215,11 +215,18 @@ It must be supported by libarchive(3).") ;; In older Emacs (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. +;; We must wrap it into `eval-when-compile'. Otherwise, there could +;; be an "Eager macro-expansion failure" when unloading/reloading Tramp. ;;;###tramp-autoload (defconst tramp-archive-file-name-regexp - (ignore-errors (tramp-archive-autoload-file-name-regexp)) + (eval-when-compile (ignore-errors (tramp-archive-autoload-file-name-regexp))) "Regular expression matching archive file names.") +;; The value above is nil for Emacs 26. Set it now. +(if (<= emacs-major-version 26) + (setq tramp-archive-file-name-regexp + (ignore-errors (tramp-archive-autoload-file-name-regexp)))) + ;;;###tramp-autoload (defconst tramp-archive-method "archive" "Method name for archives in GVFS.") -- 2.39.5