From: Lars Ingebrigtsen Date: Wed, 11 Aug 2021 19:26:29 +0000 (+0200) Subject: Allow `tex-buffer' to work on buffers not visiting files X-Git-Tag: emacs-28.0.90~1550 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=bdec9daf57a72dc48a70ae1600b3f331531c229b;p=emacs.git Allow `tex-buffer' to work on buffers not visiting files * lisp/textmodes/tex-mode.el (tex-region): Make `tex-buffer' work again on unsaved files (bug#34082). --- diff --git a/lisp/textmodes/tex-mode.el b/lisp/textmodes/tex-mode.el index 5169377c136..51216bdbe73 100644 --- a/lisp/textmodes/tex-mode.el +++ b/lisp/textmodes/tex-mode.el @@ -2533,7 +2533,10 @@ The value of `tex-command' specifies the command to use to run TeX." (file-name-as-directory (expand-file-name tex-directory))) (tex-out-file (expand-file-name (concat tex-zap-file ".tex") zap-directory)) - (main-file (expand-file-name (tex-main-file))) + ;; We may be running from an unsaved buffer, in which case + ;; there's no point in guessing for a main file name. + (main-file (and buffer-file-name + (expand-file-name (tex-main-file)))) (ismain (string-equal main-file (buffer-file-name))) already-output) ;; Don't delete temp files if we do the same buffer twice in a row. @@ -2542,9 +2545,11 @@ The value of `tex-command' specifies the command to use to run TeX." (let ((default-directory zap-directory)) ; why? ;; We assume the header is fully contained in tex-main-file. ;; We use f-f-ns so we get prompted about any changes on disk. - (with-current-buffer (find-file-noselect main-file) - (setq already-output (tex-region-header tex-out-file - (and ismain beg)))) + (if (not main-file) + (setq already-output 0) + (with-current-buffer (find-file-noselect main-file) + (setq already-output (tex-region-header tex-out-file + (and ismain beg))))) ;; Write out the specified region (but don't repeat anything ;; already written in the header). (write-region (if ismain