Subject: 13.2.0; buffer-local value of TeX-error-overview-open-after-TeX-run is ignored (with fix)

From: Johannes Beisswenger <[email-masked]>
Date: Fri, 30 Jun 2023 13:16:06 +0200

Hello,

the buffer-local value of TeX-error-overview-open-after-TeX-run seems to 
be ignored.

Expected behavior:

Setting `TeX-error-overview-open-after-TeX-run' to a non-nil error via
e.g. .dir-locals.el should automatically open the error overview after
running LaTeX (or a similar command) if any error occurs.

Observed behavior:

Setting `TeX-error-overview-open-after-TeX-run' via .dir-locals.el has
no effect, only setting it globally e.g. via `customize-variable'
results in the expected behavior.

Cause and suggested fix:

The function responsible for opening the error overview
(`TeX-LaTeX-sentinel' in tex.el) runs with the current buffer being the
`TeX-process-buffer' and looks up the value of
`TeX-error-overview-open-after-TeX-run' while in this buffer which of
course only has the global value of the variable.

Ensuring that the variable is looked up in the buffer from which
the LaTeX command was issued fixes the issue for me and is probably the 
intended behavior:

Replace

         TeX-error-overview-open-after-TeX-run

with

         (with-current-buffer TeX-command-buffer
                              TeX-error-overview-open-after-TeX-run)

in `TeX-LaTeX-sentinel'. Using `buffer-local-value' works just as well
but `TeX-LaTeX-sentinel' already uses `with-current-buffer' for exactly
this purpose with other variables.

I am quite sure that `TeX-TeX-sentinel' requires the same fix as it's 
also not looking up `TeX-error-overview-open-after-TeX-run' in the
`TeX-command-buffer' but I haven't tested this.

I hope this bug report is helpful and thanks in advance!

Johannes

Emacs  : GNU Emacs 27.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 
3.24.30, cairo version 1.16.0)
  of 2022-01-24, modified by Debian
Package: 13.2.0

current state:
==============
(setq
  AUCTeX-date "2023-04-24"
  window-system 'x
  LaTeX-version "2e"
  TeX-style-path '("~/.emacs.d/auctex" 
"/home/jbeisswenger/.emacs.d/elpa/auctex-13.2.0/style" 
"/home/jbeisswenger/.emacs.d/auctex/auto"
                   "/home/jbeisswenger/.emacs.d/auctex/style" "auto" 
"style")
  TeX-auto-save t
  TeX-parse-self t
  TeX-master "ausarbeitung"
  TeX-command-list '(("LatexMk" "latexmk %(-PDF)%S%(mode) 
%(file-line-error) %(extraopts) %t" TeX-run-latexmk nil (plain-tex-mode 
latex-mode doctex-mode)
                      :help "Run LatexMk")
                     ("TeX" "%(PDF)%(tex) %(file-line-error) 
%`%(extraopts) %S%(PDFout)%(mode)%' %(output-dir) %t" TeX-run-TeX nil
                      (plain-tex-mode ams-tex-mode texinfo-mode) :help 
"Run plain TeX")
                     ("LaTeX" "%`%l%(mode)%' %T" TeX-run-TeX nil 
(latex-mode doctex-mode) :help "Run LaTeX")
                     ("Makeinfo" "makeinfo %(extraopts) %(o-dir) %t" 
TeX-run-compile nil (texinfo-mode) :help "Run Makeinfo with Info output")
                     ("Makeinfo HTML" "makeinfo %(extraopts) %(o-dir) 
--html %t" TeX-run-compile nil (texinfo-mode) :help "Run Makeinfo with 
HTML output")
                     ("AmSTeX" "amstex %(PDFout) %`%(extraopts) 
%S%(mode)%' %(output-dir) %t" TeX-run-TeX nil (ams-tex-mode) :help "Run 
AMSTeX")
                     ("ConTeXt" "%(cntxcom) --once --texutil 
%(extraopts) %(execopts)%t" TeX-run-TeX nil (context-mode) :help "Run 
ConTeXt once")
                     ("ConTeXt Full" "%(cntxcom) %(extraopts) 
%(execopts)%t" TeX-run-TeX nil (context-mode) :help "Run ConTeXt until 
completion")
                     ("BibTeX" "%(bibtex) %s" TeX-run-BibTeX nil 
(plain-tex-mode latex-mode doctex-mode ams-tex-mode texinfo-mode 
context-mode) :help
                      "Run BibTeX")
                     ("Biber" "biber %(output-dir) %s" TeX-run-Biber nil 
(plain-tex-mode latex-mode doctex-mode ams-tex-mode texinfo-mode) :help 
"Run Biber")
                     ("Texindex" "texindex %s.??" TeX-run-command nil 
(texinfo-mode) :help "Run Texindex")
                     ("Texi2dvi" "%(PDF)texi2dvi %t" TeX-run-command nil 
(texinfo-mode) :help "Run Texi2dvi or Texi2pdf")
                     ("View" "%V" TeX-run-discard-or-function t t :help 
"Run Viewer") ("Print" "%p" TeX-run-command t t :help "Print the file")
                     ("Queue" "%q" TeX-run-background nil t :help "View 
the printer queue" :visible TeX-queue-command)
                     ("File" "%(o?)dvips %d -o %f " TeX-run-dvips t 
(plain-tex-mode latex-mode doctex-mode ams-tex-mode texinfo-mode) :help
                      "Generate PostScript file")
                     ("Dvips" "%(o?)dvips %d -o %f " TeX-run-dvips nil 
(plain-tex-mode latex-mode doctex-mode ams-tex-mode texinfo-mode) :help
                      "Convert DVI file to PostScript")
                     ("Dvipdfmx" "dvipdfmx -o %(O?pdf) %d" 
TeX-run-dvipdfmx nil (plain-tex-mode latex-mode doctex-mode ams-tex-mode 
texinfo-mode) :help
                      "Convert DVI file to PDF with dvipdfmx")
                     ("Ps2pdf" "ps2pdf %f %(O?pdf)" TeX-run-ps2pdf nil 
(plain-tex-mode latex-mode doctex-mode ams-tex-mode texinfo-mode) :help
                      "Convert PostScript file to PDF")
                     ("Glossaries" "makeglossaries %(d-dir) %s" 
TeX-run-command nil (plain-tex-mode latex-mode doctex-mode ams-tex-mode 
texinfo-mode) :help
                      "Run makeglossaries to create glossary file")
                     ("Index" "%(makeindex) %s" TeX-run-index nil 
(plain-tex-mode latex-mode doctex-mode ams-tex-mode texinfo-mode) :help
                      "Run makeindex to create index file")
                     ("upMendex" "upmendex %(O?idx)" TeX-run-index t 
(plain-tex-mode latex-mode doctex-mode ams-tex-mode texinfo-mode) :help
                      "Run upmendex to create index file")
                     ("Xindy" "texindy %s" TeX-run-command nil 
(plain-tex-mode latex-mode doctex-mode ams-tex-mode texinfo-mode) :help
                      "Run xindy to create index file")
                     ("Check" "lacheck %s" TeX-run-compile nil 
(latex-mode) :help "Check LaTeX file for correctness")
                     ("ChkTeX" "chktex -v6 %s" TeX-run-compile nil 
(latex-mode) :help "Check LaTeX file for common mistakes")
                     ("Spell" "(TeX-ispell-document \"\")" 
TeX-run-function nil t :help "Spell-check the document")
                     ("Clean" "TeX-clean" TeX-run-function nil t :help 
"Delete generated intermediate files")
                     ("Clean All" "(TeX-clean t)" TeX-run-function nil t 
:help "Delete generated intermediate and output files")
                     ("Other" "" TeX-run-command t t :help "Run an 
arbitrary command"))
  )