GNU bug report logs -
#78841
reftex-get-bibfile-list fails to detect biblatex if there's no buffer for the main file
Previous Next
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Independently of latexenc (which should be fixed, yes), here's a patch
that gets rid of the heuristic in reftex. I still believe that this
simplifies things, doesn't matter at all performance-wise, and gets rid
of numerous corner cases in which the heuristic won't work, some of
which are in my previous email:
> * latexenc-dont-use-TeX-master-flag is t
> * latexenc will be removed or changed in the future
> * the \addbibresource commands is not in the same file as
> \usepackage{biblatex}
If you think that's a good idea, then let me know and I'll write a
proper commit message.
Best,
Tim
On Sun, 2025-06-29 at 11:34 +0200, Arash Esbati wrote:
> Stefan Monnier <monnier <at> iro.umontreal.ca> writes:
>
> > LGTM.
>
> Thanks.
>
> > This said, I don't think we need `default-value`. And we can
> > presumably simplify the above to
> >
> > (let ((file (if (re-search-forward
> > "^%+ *\\(TeX-master\\|tex-main-
> > file\\): *\"\\(.+\\)\""
> > nil t)
> > (match-string 2)
> > (or (bound-and-true-p TeX-master)
> > (bound-and-true-p tex-main-file)))))
> > (when (stringp file)
> > (dolist ...)))
>
> Yes, you're right. And while we're at it, I also think we should
> change:
>
> (search-forward "Local Variables:" nil t)
>
> to
>
> (re-search-forward "^%+ *Local Variables:" nil t)
>
> WDYT? I'd install this change:
>
> --8<---------------cut here---------------start------------->8---
> diff --git a/lisp/international/latexenc.el
> b/lisp/international/latexenc.el
> index 1b735810ee4..fea5be6dbd7 100644
> --- a/lisp/international/latexenc.el
> +++ b/lisp/international/latexenc.el
> @@ -144,24 +144,27 @@ 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)))
> - (dolist (ext `("" ,(if (boundp 'TeX-default-
> extension)
> - (concat "." TeX-default-
> extension)
> - "")
> - ".tex" ".ltx" ".dtx" ".drv"))
> - (if (and (null latexenc-main-file) ;Stop at
> first.
> - (file-exists-p (concat file ext)))
> - (setq latexenc-main-file (concat file
> ext)))))))
> + (re-search-forward "^%+ *Local Variables:" nil t)
> + (let ((file (if (re-search-forward
> + "^%+ *\\(TeX-master\\|tex-main-
> file\\): *\"\\(.+\\)\""
> + nil t)
> + (match-string 2)
> + (or (bound-and-true-p TeX-master)
> + (bound-and-true-p tex-main-file)))))
> + (dolist (ext `("" ,(if (boundp 'TeX-default-
> extension)
> + (concat "." TeX-default-
> extension)
> + "")
> + ".tex" ".ltx" ".dtx" ".drv"))
> + (if (and (null latexenc-main-file) ;Stop at first.
> + (file-exists-p (concat file ext)))
> + (setq latexenc-main-file (concat file
> ext))))))
> ;; try tex-modes tex-guess-main-file
> (when (and (not latexenc-dont-use-tex-guess-main-file-
> flag)
> (not latexenc-main-file))
> --8<---------------cut here---------------end--------------->8---
>
> Best, Arash
[0001-reftex-Remove-heuristics-to-detect-biblatex.patch (text/x-patch, attachment)]
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.