From 22daed7ce0e3fbe55608a92c81deee24933b266d Mon Sep 17 00:00:00 2001 From: Arash Esbati Date: Fri, 4 Jul 2025 14:31:27 +0200 Subject: [PATCH] Consider constant TeX master/main file * lisp/international/latexenc.el (latexenc-find-file-coding-system): Search for "Local Variables" as a comment. Consider the case where `TeX-master' or `tex-main-file' is globally set to a string as well. (AUCTeX bug#78841) --- lisp/international/latexenc.el | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/lisp/international/latexenc.el b/lisp/international/latexenc.el index 1b735810ee4..fea5be6dbd7 100644 --- a/lisp/international/latexenc.el +++ b/lisp/international/latexenc.el @@ -144,24 +144,27 @@ coding system names is determined from `latex-inputenc-coding-alist'." (file-name-directory (nth 1 arg-list)) default-directory)) latexenc-main-file) - ;; Is there a TeX-master or tex-main-file in the local variables - ;; section? + ;; Is there a TeX-master or tex-main-file in the local + ;; variables section or is it globally set to a constant + ;; string? (unless latexenc-dont-use-TeX-master-flag (goto-char (point-max)) (search-backward "\n\^L" (max (- (point-max) 3000) (point-min)) 'move) - (search-forward "Local Variables:" nil t) - (when (re-search-forward - "^%+ *\\(TeX-master\\|tex-main-file\\): *\"\\(.+\\)\"" - nil t) - (let ((file (match-string 2))) - (dolist (ext `("" ,(if (boundp 'TeX-default-extension) - (concat "." TeX-default-extension) - "") - ".tex" ".ltx" ".dtx" ".drv")) - (if (and (null latexenc-main-file) ;Stop at first. - (file-exists-p (concat file ext))) - (setq latexenc-main-file (concat file ext))))))) + (re-search-forward "^%+ *Local Variables:" nil t) + (let ((file (if (re-search-forward + "^%+ *\\(TeX-master\\|tex-main-file\\): *\"\\(.+\\)\"" + nil t) + (match-string 2) + (or (bound-and-true-p TeX-master) + (bound-and-true-p tex-main-file))))) + (dolist (ext `("" ,(if (boundp 'TeX-default-extension) + (concat "." TeX-default-extension) + "") + ".tex" ".ltx" ".dtx" ".drv")) + (if (and (null latexenc-main-file) ;Stop at first. + (file-exists-p (concat file ext))) + (setq latexenc-main-file (concat file ext)))))) ;; try tex-modes tex-guess-main-file (when (and (not latexenc-dont-use-tex-guess-main-file-flag) (not latexenc-main-file))