--- Begin Message ---
Subject: |
14.0.3; hack-local-variables misbehaves after loading AUCTeX |
Date: |
Sun, 25 Feb 2024 08:09:26 +0100 |
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"))
)
--
Tony Zorman | https://tony-zorman.com/
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#69373: 14.0.3; hack-local-variables misbehaves after loading AUCTeX |
Date: |
Sun, 25 Feb 2024 11:47:34 -0500 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
> Yup, things are working as expected with that patch applied. Thank you!
Great, thank you, pushed.
[ That was an oversight from many years ago (until Emacs-28, that code
was identical to the body of `set-auto-mode-0` and that was short
enough that it wasn't important to use the function) which I failed to
noticed when I changed `set-auto-mode-0` for Emacs-29.1. ]
Stefan
--- End Message ---