Package: auctex;
Reported by: Tony Zorman <soliditsallgood <at> mailbox.org>
Date: Sun, 25 Feb 2024 07:46:02 UTC
Severity: normal
Found in version 14.0.3
Done: Stefan Monnier <monnier <at> iro.umontreal.ca>
Bug is archived. No further changes may be made.
Message #8 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Arash Esbati <arash <at> gnu.org> To: Tony Zorman via bug-auctex via Bug reporting list for AUCTeX <bug-auctex <at> gnu.org> Cc: Tony Zorman <soliditsallgood <at> mailbox.org>, Stefan Monnier <monnier <at> iro.umontreal.ca>, 69373 <at> debbugs.gnu.org Subject: Re: bug#69373: 14.0.3; hack-local-variables misbehaves after loading AUCTeX Date: Sun, 25 Feb 2024 15:10:56 +0100
Hi Tony, Thanks for the report. I think this is more an Emacs issue than AUCTeX and should be assigned/fixed there. @Stefan: Can you please also have a look at the report below? Do you have an idea how and where it should be fixed? TIA. Best, Arash Tony Zorman via bug-auctex via Bug reporting list for AUCTeX <bug-auctex <at> gnu.org> writes: > Hi, > > AUCTeX 14.x changed major-mode names from latex-mode to LaTeX-mode. As > indicated in the relevant changes file, the local variables added by > AUCTeX at the bottom of a file are now > > %%% Local Variables: > %%% mode: LaTeX <-- not `latex' > %%% End: > > However, it seems like this is not enough. It might be that a minor mode > calls hack-local-variables after AUCTeX is loaded; what will happen then > is that the regular latex-mode is activated, and AUCTeX vanishes! > > The reason for that is that hack-local-variables eventually calls > hack-one-local-variable, which features this piece of code: > > (defun hack-one-local-variable (var val) > "...DOCSTRING..." > (pcase var > ('mode ; vvvvvvvv > (let ((mode (intern (concat (downcase (symbol-name val)) > "-mode")))) > (unless (eq (indirect-function mode) > (indirect-function major-mode)) > (funcall mode)))) > …)) > > In other words, LaTeX-mode gets turned into latex-mode anyways. > Curiously, executing this does indeed drop one down into the built in > latex-mode—it seems that the settings in major-mode-remap-alist are > ignored somehow. > > This is not a theoretical issue, and has happened with a particular > minor mode (that issue was fixed, but I reckon there are potentially > more modes out there that do something like this). > > I'm not sure there to report this (Is this an Emacs bug with repect to > major-mode-remap-alist not being respected? or hack-one-local-variable > just downcasing the mode?) so I will try here first. > > Thanks! > Tony > > Emacs : GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, Motif Version 2.3.8, cairo version 1.18.0) > Package: 14.0.3 > > current state: > ============== > (setq > AUCTeX-date "2024-02-20" > window-system 'x > LaTeX-version "2e" > TeX-style-path '("~/.emacs.d/auctex" > "/nix/store/2q9acgmrj6bya64wn83y5h2kw8ravgij-emacs-packages-deps/share/emacs/site-lisp/elpa/auctex-14.0.3/style" > "/home/slot/.config/emacs/auctex/auto" "/home/slot/.config/emacs/auctex/style" "auto" "style") > TeX-auto-save t > TeX-parse-self t > TeX-master t > TeX-command-list '(("TeX" "%(PDF)%(tex) %(file-line-error) %`%(extraopts) %S%(PDFout)%(mode)%' %(output-dir) %t" TeX-run-TeX nil > (plain-TeX-mode AmSTeX-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 (AmSTeX-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 %(O?aux)" TeX-run-BibTeX nil > (plain-TeX-mode LaTeX-mode docTeX-mode AmSTeX-mode Texinfo-mode ConTeXt-mode) :help "Run BibTeX") > ("Biber" "biber %(output-dir) %s" TeX-run-Biber nil > (plain-TeX-mode LaTeX-mode docTeX-mode AmSTeX-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 AmSTeX-mode Texinfo-mode) > :help "Generate PostScript file") > ("Dvips" "%(o?)dvips %d -o %f " TeX-run-dvips nil > (plain-TeX-mode LaTeX-mode docTeX-mode AmSTeX-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 AmSTeX-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 AmSTeX-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 AmSTeX-mode Texinfo-mode) :help > "Run makeglossaries to create glossary file") > ("Index" "makeindex %(O?idx)" TeX-run-index nil (plain-TeX-mode LaTeX-mode docTeX-mode AmSTeX-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 AmSTeX-mode Texinfo-mode) > :help "Run upmendex to create index file") > ("Xindy" "texindy %s" TeX-run-command nil (plain-TeX-mode LaTeX-mode docTeX-mode AmSTeX-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")) > )
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.