defun guess-TeX-master : filename
. "Guess the master file for FILENAME from currently open .tex files."
let
:
candidate nil
filename : file-name-nondirectory filename
save-excursion
dolist : buffer : buffer-list
with-current-buffer buffer
let
:
name : buffer-name
file buffer-file-name
if
and file : string-match "\\.tex$" file
progn
goto-char : point-min
if
re-search-forward
concat "\\\\input{" filename "}"
. nil t
setq candidate file
if
re-search-forward
concat "\\\\include{" (file-name-sans-extension filename) "}"
. nil t
setq candidate file
if candidate
message "TeX master document: %s" : file-name-nondirectory candidate
. candidate