auctex-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Attempt to remove TeX-auto-update


From: Ikumi Keita
Subject: Attempt to remove TeX-auto-update
Date: Mon, 22 Feb 2021 21:18:44 +0900

Hi all,

In order to reduce byte compile warnings, I'm examining the usage of
`TeX-auto-update'. I came to think, as discussed below, that we can get
rid of `TeX-auto-update' variable, so I share my idea as the attached
patch so that others can discuss it and find possible shortcomings.

I think that we can regard `TeX-auto-update' as an indicator whether it
is AUCTeX document buffer because it is set in
`VirTeX-common-initialization' and `TeX-texinfo-mode'. For that purpose
we can use `TeX-mode-p' instead.
In addition, `BibTeX-auto-store' also sets `TeX-auto-update' to `BibTeX'.
`BibTeX-auto-store' is only called in 'bibtex-mode-hook', so I think it
is only in bibtex mode buffer that `TeX-auto-update' can be `BibTeX'.

AUCTeX refers to `TeX-auto-update' only at the following two pieces of
code, except bib-cite.el:
---- (1) -------------------------------------------------------------
(defun TeX-safe-auto-write ()
  "Call `TeX-auto-write' safely."
  (condition-case _ignored
      (and (boundp 'TeX-auto-update)
           TeX-auto-update
           (TeX-auto-write))
    (error nil))
  ;; Continue with the other write file hooks.
  nil)
----------------------------------------------------------------------
---- (2) -------------------------------------------------------------
(defun TeX-update-style (&optional force)
[...]
  (unless (or (and (boundp 'TeX-auto-update)
                   (eq TeX-auto-update 'BibTeX)) ; Not a real TeX buffer
              (and (not force)
                   TeX-style-hook-applied-p))
[... Apply various style hooks]
----------------------------------------------------------------------

About piece (1): The reason why `TeX-safe-auto-write' tests whether
`TeX-auto-update' is bound and non-nil is, I suppose, that this function
formerly had a chance to be stored in `write-file-hooks' as a global
hook; In that case, this function is called when _any_ buffer is going
to be saved in a file, so it is necessary to distinguish that the
current buffer is AUCTeX document or not.

Now that `TeX-safe-auto-write' is stored in `write-contents-functions'
as a local hook, I think that such check is no longer necessary.

About piece (2): Here, `TeX-update-style' tries to skip applying various
style hooks in BibTeX buffer. This check is needed since
`TeX-safe-auto-write' is called via `write-contents-functions' in
bibtex mode buffers, which in turn calls `TeX-auto-write'
calling `TeX-update-style'. I think that it's enough to check that
`major-mode' is `bibtex-mode' or not, instead of looking at
`TeX-auto-update'.

These functions are modified along with the above consideration in the
attached patch.

In bib-cite.el, we see several other usages of `TeX-auto-update'. 

In the attached patch, I replaced test for `TeX-auto-update' with a
check for `TeX-mode-p' in `bib-get-bibliography' and a check for
`TeX-mode-p' or `major-mode' being `bibtex-mode' in `bib-apropos'.
I did so because I assumed that `bib-get-bibliography' won't be called
in bibtex mode buffer but I'm not sure this assumption is right or not.

In the patch I omitted let-bound of `TeX-auto-update' in
`bib-create-auto-file' because the changes in `TeX-safe-auto-write' and
`TeX-update-style' would compensate it.

Any comments and advices are much appreciated.

Best regards,
Ikumi Keita

Attachment: patch
Description: proposed patch


reply via email to

[Prev in Thread] Current Thread [Next in Thread]