[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#69373: 14.0.3; hack-local-variables misbehaves after loading AUCTeX
From: |
Arash Esbati |
Subject: |
bug#69373: 14.0.3; hack-local-variables misbehaves after loading AUCTeX |
Date: |
Sun, 25 Feb 2024 15:10:56 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
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@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"))
> )