From e1a209ef41ab0f0d11c93c863524ad3c9d4acdc5 Mon Sep 17 00:00:00 2001 From: Lars Ingebrigtsen Date: Fri, 20 Aug 2021 15:57:06 +0200 Subject: [PATCH] Fix infinite recursion in mode: tex * lisp/textmodes/tex-mode.el (tex--redirect-to-submode): Inhibit recursion when called from file-local variables (bug#50126). --- lisp/textmodes/tex-mode.el | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lisp/textmodes/tex-mode.el b/lisp/textmodes/tex-mode.el index c53acf53e7e..2a61e4e9a31 100644 --- a/lisp/textmodes/tex-mode.el +++ b/lisp/textmodes/tex-mode.el @@ -1016,10 +1016,14 @@ says which mode to use." (advice-add 'tex-mode :around #'tex--redirect-to-submode) (defun tex--redirect-to-submode (orig-fun) "Redirect to one of the submodes when called directly." - (funcall (if delay-mode-hooks - ;; We're called from one of the children already. - orig-fun - (tex--guess-mode)))) + ;; The file may have "mode: tex" in the local variable + ;; block, in which case we'll be called recursively + ;; infinitely. Inhibit that. + (let ((enable-local-variables nil)) + (funcall (if delay-mode-hooks + ;; We're called from one of the children already. + orig-fun + (tex--guess-mode))))) ;; The following three autoloaded aliases appear to conflict with ;; AUCTeX. However, even though AUCTeX uses the mixed case variants -- 2.39.5