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).
This commit is contained in:
Lars Ingebrigtsen 2021-08-20 15:57:06 +02:00
parent c2026cf366
commit e1a209ef41

View file

@ -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