Handle TeX-master
holding a buffer
Cleanup initialization of the syntax tables, while we're at it. * lisp/textmodes/reftex.el (reftex-syntax-table) (reftex-syntax-table-for-bib): Move initialization into the declaration. (reftex--prepare-syntax-tables): Delete function. (reftex-mode): Delete call to it. (reftex-TeX-master-file): Handle the case where `TeX-master` holds a buffer (e.g. because of `reftex-find-duplicate-labels`). Consolidate the two cases where we prompt the user.
This commit is contained in:
parent
03fc0e0fd5
commit
9983551f46
1 changed files with 18 additions and 27 deletions
|
@ -133,24 +133,21 @@
|
|||
"Keymap for RefTeX mode.")
|
||||
|
||||
(defvar reftex-mode-menu nil)
|
||||
(defvar reftex-syntax-table nil)
|
||||
(defvar reftex-syntax-table-for-bib nil)
|
||||
(defvar reftex-syntax-table
|
||||
(let ((st (make-syntax-table)))
|
||||
(modify-syntax-entry ?\( "." st)
|
||||
(modify-syntax-entry ?\) "." st)
|
||||
st))
|
||||
|
||||
(defun reftex--prepare-syntax-tables ()
|
||||
(setq reftex-syntax-table (copy-syntax-table))
|
||||
(modify-syntax-entry ?\( "." reftex-syntax-table)
|
||||
(modify-syntax-entry ?\) "." reftex-syntax-table)
|
||||
|
||||
(setq reftex-syntax-table-for-bib (copy-syntax-table))
|
||||
(modify-syntax-entry ?\' "." reftex-syntax-table-for-bib)
|
||||
(modify-syntax-entry ?\" "." reftex-syntax-table-for-bib)
|
||||
(modify-syntax-entry ?\[ "." reftex-syntax-table-for-bib)
|
||||
(modify-syntax-entry ?\] "." reftex-syntax-table-for-bib)
|
||||
(modify-syntax-entry ?\( "." reftex-syntax-table-for-bib)
|
||||
(modify-syntax-entry ?\) "." reftex-syntax-table-for-bib))
|
||||
|
||||
(unless (and reftex-syntax-table reftex-syntax-table-for-bib)
|
||||
(reftex--prepare-syntax-tables))
|
||||
(defvar reftex-syntax-table-for-bib
|
||||
(let ((st (make-syntax-table)))
|
||||
(modify-syntax-entry ?\' "." st)
|
||||
(modify-syntax-entry ?\" "." st)
|
||||
(modify-syntax-entry ?\[ "." st)
|
||||
(modify-syntax-entry ?\] "." st)
|
||||
(modify-syntax-entry ?\( "." st)
|
||||
(modify-syntax-entry ?\) "." st)
|
||||
st))
|
||||
|
||||
;; The following definitions are out of place, but I need them here
|
||||
;; to make the compilation of reftex-mode not complain.
|
||||
|
@ -212,9 +209,6 @@ on the menu bar.
|
|||
(reftex-toggle-auto-toc-recenter))
|
||||
(put 'reftex-auto-recenter-toc 'initialized t))
|
||||
|
||||
;; Prepare the special syntax tables.
|
||||
(reftex--prepare-syntax-tables)
|
||||
|
||||
(run-hooks 'reftex-mode-hook))))
|
||||
|
||||
(defvar reftex-docstruct-symbol)
|
||||
|
@ -415,10 +409,7 @@ If the symbols for the current master file do not exist, they are created."
|
|||
(cond
|
||||
((eq TeX-master t)
|
||||
(buffer-file-name))
|
||||
((eq TeX-master 'shared)
|
||||
(setq TeX-master (read-file-name "Master file: "
|
||||
nil nil t nil)))
|
||||
(TeX-master)
|
||||
((or (stringp TeX-master) (bufferp TeX-master)) TeX-master)
|
||||
(t
|
||||
(setq TeX-master (read-file-name "Master file: "
|
||||
nil nil t nil)))))
|
||||
|
@ -437,7 +428,7 @@ If the symbols for the current master file do not exist, they are created."
|
|||
(t
|
||||
(buffer-file-name)))))
|
||||
(cond
|
||||
((null master))
|
||||
((not (stringp master)))
|
||||
((or (file-exists-p (concat master ".tex"))
|
||||
(find-buffer-visiting (concat master ".tex")))
|
||||
;; Ahh, an extra .tex was missing...
|
||||
|
@ -449,9 +440,9 @@ If the symbols for the current master file do not exist, they are created."
|
|||
(t
|
||||
;; Use buffer file name.
|
||||
(setq master (buffer-file-name))))
|
||||
(if master
|
||||
(if (stringp master)
|
||||
(expand-file-name master)
|
||||
(current-buffer)))))
|
||||
(or master (current-buffer))))))
|
||||
|
||||
(defun reftex-is-multi ()
|
||||
;; Tell if this is a multifile document. When not sure, say yes.
|
||||
|
|
Loading…
Add table
Reference in a new issue