From: Lars Ingebrigtsen Date: Fri, 20 Aug 2021 13:57:06 +0000 (+0200) Subject: Fix infinite recursion in mode: tex X-Git-Tag: emacs-28.0.90~1415 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=e1a209ef41ab0f0d11c93c863524ad3c9d4acdc5;p=emacs.git 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). --- 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