Tim Ruffing <d...@real-or-random.org> writes: >> IIUC, `latexenc-find-file-coding-system' isn't prepared to deal with >> `TeX-master' set to a string top-level. My change above adds that. > > I've tested this, and this works in this specific case.
Arne, we have a bug report for AUCTeX where I found that the function `latexenc-find-file-coding-system' can't deal with `TeX-master' or `tex-main-file' set to a constant string in the init file and not as file local variable. I'm not really familiar with your code, but the following small change is reported to fix the issue, at least for AUCTeX: --8<---------------cut here---------------start------------->8--- diff --git a/lisp/international/latexenc.el b/lisp/international/latexenc.el index 1b735810ee4..b7b022e68c4 100644 --- a/lisp/international/latexenc.el +++ b/lisp/international/latexenc.el @@ -144,17 +144,26 @@ latexenc-find-file-coding-system (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))) + (when (or (re-search-forward + "^%+ *\\(TeX-master\\|tex-main-file\\): *\"\\(.+\\)\"" + nil t) + (and (bound-and-true-p 'TeX-master) + (stringp (default-value 'TeX-master))) + (and (bound-and-true-p 'tex-main-file) + (stringp (default-value 'tex-main-file)))) + (let ((file (or (match-string 2) + (and (boundp 'TeX-master) + (default-value 'TeX-master)) + (and (boundp 'tex-main-file) + (default-value 'tex-main-file))))) (dolist (ext `("" ,(if (boundp 'TeX-default-extension) (concat "." TeX-default-extension) "") @@ -180,7 +189,7 @@ latexenc-find-file-coding-system (coding-system-base ;Disregard the EOL part of the CS. (with-current-buffer latexenc-main-buffer (or coding-system-for-write buffer-file-coding-system - 'undecided)))) + 'undecided)))) 'undecided)))) 'undecided)) --8<---------------cut here---------------end--------------->8--- Do you have any comments on this? @Stefan: FYI, I'm not familiar with tex-mode.el and what `tex-main-file' does, maybe you can review the change above for tex-mode.el. TIA. Best, Arash _______________________________________________ bug-auctex mailing list bug-auctex@gnu.org https://lists.gnu.org/mailman/listinfo/bug-auctex