GNU bug report logs - #78841
reftex-get-bibfile-list fails to detect biblatex if there's no buffer for the main file

Previous Next

Package: auctex;

Reported by: Tim Ruffing <dev <at> real-or-random.org>

Date: Thu, 19 Jun 2025 19:29:04 UTC

Severity: normal

Full log


View this message in rfc822 format

From: Arash Esbati <arash <at> gnu.org>
To: arne <at> arnested.dk, Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: Tim Ruffing <dev <at> real-or-random.org>, 78841 <at> debbugs.gnu.org
Subject: bug#78841: reftex-get-bibfile-list fails to detect biblatex if there's no buffer for the main file
Date: Wed, 25 Jun 2025 21:11:35 +0200
Tim Ruffing <dev <at> real-or-random.org> writes:

>> IIUC, `latexenc-find-file-coding-system' isn't prepared to deal with
>> `TeX-master' set to a string top-level.  My change above adds that.
>
> I've tested this, and this works in this specific case.

Arne, we have a bug report for AUCTeX where I found that the function
`latexenc-find-file-coding-system' can't deal with `TeX-master' or
`tex-main-file' set to a constant string in the init file and not as
file local variable.  I'm not really familiar with your code, but the
following small change is reported to fix the issue, at least for
AUCTeX:

--8<---------------cut here---------------start------------->8---
diff --git a/lisp/international/latexenc.el b/lisp/international/latexenc.el
index 1b735810ee4..b7b022e68c4 100644
--- a/lisp/international/latexenc.el
+++ b/lisp/international/latexenc.el
@@ -144,17 +144,26 @@ latexenc-find-file-coding-system
                                       (file-name-directory (nth 1 arg-list))
                                     default-directory))
                latexenc-main-file)
-            ;; Is there a TeX-master or tex-main-file in the local variables
-            ;; section?
+            ;; Is there a TeX-master or tex-main-file in the local
+            ;; variables section or is it globally set to a constant
+            ;; string?
             (unless latexenc-dont-use-TeX-master-flag
               (goto-char (point-max))
              (search-backward "\n\^L" (max (- (point-max) 3000) (point-min))
                                'move)
              (search-forward "Local Variables:" nil t)
-              (when (re-search-forward
-                     "^%+ *\\(TeX-master\\|tex-main-file\\): *\"\\(.+\\)\""
-                     nil t)
-                (let ((file (match-string 2)))
+              (when (or (re-search-forward
+                         "^%+ *\\(TeX-master\\|tex-main-file\\): *\"\\(.+\\)\""
+                         nil t)
+                        (and (bound-and-true-p 'TeX-master)
+                             (stringp (default-value 'TeX-master)))
+                        (and (bound-and-true-p 'tex-main-file)
+                             (stringp (default-value 'tex-main-file))))
+                (let ((file (or (match-string 2)
+                                (and (boundp 'TeX-master)
+                                     (default-value 'TeX-master))
+                                (and (boundp 'tex-main-file)
+                                     (default-value 'tex-main-file)))))
                   (dolist (ext `("" ,(if (boundp 'TeX-default-extension)
                                          (concat "." TeX-default-extension)
                                        "")
@@ -180,7 +189,7 @@ latexenc-find-file-coding-system
                   (coding-system-base   ;Disregard the EOL part of the CS.
                    (with-current-buffer latexenc-main-buffer
                      (or coding-system-for-write buffer-file-coding-system
-                        'undecided))))
+                        'undecided))))
               'undecided))))
     'undecided))
--8<---------------cut here---------------end--------------->8---

Do you have any comments on this?

@Stefan: FYI, I'm not familiar with tex-mode.el and what `tex-main-file'
does, maybe you can review the change above for tex-mode.el.  TIA.

Best, Arash




This bug report was last modified 30 days ago.

Previous Next


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