GNU bug report logs - #69373
14.0.3; hack-local-variables misbehaves after loading AUCTeX

Previous Next

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.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#69373: closed (14.0.3; hack-local-variables misbehaves after
 loading AUCTeX)
Date: Sun, 25 Feb 2024 16:58:01 +0000
[Message part 1 (text/plain, inline)]
Your message dated Sun, 25 Feb 2024 11:47:34 -0500
with message-id <jwvttlwqysu.fsf-monnier+emacs <at> gnu.org>
and subject line Re: bug#69373: 14.0.3; hack-local-variables misbehaves after loading AUCTeX
has caused the debbugs.gnu.org bug report #69373,
regarding 14.0.3; hack-local-variables misbehaves after loading AUCTeX
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
69373: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=69373
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Tony Zorman <soliditsallgood <at> mailbox.org>
To: bug-auctex <at> gnu.org
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/


[Message part 3 (message/rfc822, inline)]
From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Tony Zorman <soliditsallgood <at> mailbox.org>
Cc: Tony Zorman via bug-auctex via Bug reporting list for AUCTeX
 <bug-auctex <at> gnu.org>, Arash Esbati <arash <at> gnu.org>, 69373-done <at> debbugs.gnu.org
Subject: Re: bug#69373: 14.0.3; hack-local-variables misbehaves after
 loading AUCTeX
Date: Sun, 25 Feb 2024 11:47:34 -0500
> 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



This bug report was last modified 1 year and 82 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.