]> git.eshelyaron.com Git - emacs.git/commitdiff
Make tramp-archive autoloads robust for older Emacs versions
authorMichael Albinus <michael.albinus@gmx.de>
Sun, 18 Dec 2022 15:42:51 +0000 (16:42 +0100)
committerMichael Albinus <michael.albinus@gmx.de>
Sun, 18 Dec 2022 15:42:51 +0000 (16:42 +0100)
* 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

index 9c1e78d6b0bb5c8274cce99470285704494e133f..49b0c0bb6b46c1244e14354acb925c791102643f 100644 (file)
@@ -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.")