summaryrefslogtreecommitdiff
path: root/lisp/net/tramp-archive.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/net/tramp-archive.el')
-rw-r--r--lisp/net/tramp-archive.el9
1 files changed, 8 insertions, 1 deletions
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.")