From 84b1b6adee804268fba5965873ad4e37126dc65e Mon Sep 17 00:00:00 2001 From: Ikumi Keita Date: Fri, 28 Mar 2025 22:18:42 +0900 Subject: [PATCH] Suppress error in non-file buffer * lisp/textmodes/reftex.el (reftex--suppress-nonfile-error): New variable. (reftex-TeX-master-file): Don't signal error in non-file buffer. (AUCTeX bug#76615) (cherry picked from commit 905712690097addb201b02bd936aa26361316723) --- lisp/textmodes/reftex.el | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/lisp/textmodes/reftex.el b/lisp/textmodes/reftex.el index 91ed55d8337..be532afb78c 100644 --- a/lisp/textmodes/reftex.el +++ b/lisp/textmodes/reftex.el @@ -62,6 +62,12 @@ (setq reftex-tables-dirty t) (set symbol value))) +(defvar reftex--suppress-nonfile-error nil + "When non-nil, don't signal error in non-file buffer. + +Note that this is just a quick and dirty hack and is _not_ reliable at +all. It only circumvents disastrous error in `reftex-TeX-master-file', +in case that the user turns on RefTeX in latex mode hook.") ;; Configuration variables (require 'reftex-vars) @@ -377,7 +383,8 @@ If the symbols for the current master file do not exist, they are created." (buffer-file-name))))) (cond ((null master) - (error "Need a filename for this buffer, please save it first")) + (or reftex--suppress-nonfile-error + (error "Need a filename for this buffer, please save it first"))) ((or (file-exists-p (concat master ".tex")) (find-buffer-visiting (concat master ".tex"))) ;; Ahh, an extra .tex was missing... @@ -389,7 +396,10 @@ If the symbols for the current master file do not exist, they are created." (t ;; Use buffer file name. (setq master (buffer-file-name)))) - (expand-file-name master))) + (if (and (not master) + reftex--suppress-nonfile-error) + ".tex" + (expand-file-name master)))) (defun reftex-is-multi () ;; Tell if this is a multifile document. When not sure, say yes. -- 2.39.5