branch: externals/auctex
commit db3fcb96aaa768a1b851a00d9254d7135c832251
Author: Mosè Giordano <[email protected]>
Commit: Mosè Giordano <[email protected]>
* tex.el (TeX-add-local-master): Inherit major mode from master file.
---
tex.el | 27 ++++++++++++++++++---------
1 file changed, 18 insertions(+), 9 deletions(-)
diff --git a/tex.el b/tex.el
index e192899..1b5f2cb 100644
--- a/tex.el
+++ b/tex.el
@@ -2513,7 +2513,9 @@ name of master file if it cannot be determined otherwise."
(file-name-directory buffer-file-name)))))))
(defun TeX-add-local-master ()
- "Add local variable for `TeX-master'."
+ "Add local variable for `TeX-master'.
+
+Get `major-mode' from master file and enable it."
(when (and (buffer-file-name)
(string-match TeX-one-master
(file-name-nondirectory (buffer-file-name)))
@@ -2526,20 +2528,27 @@ name of master file if it cannot be determined
otherwise."
"End:")))
(beginning-of-line 1)
(insert prefix "TeX-master: " (prin1-to-string TeX-master) "\n"))
- (let ((comment-prefix (cond ((eq major-mode 'texinfo-mode) "@c ")
- ((eq major-mode 'doctex-mode) "% ")
- (t "%%% ")))
- (mode (concat (and (boundp 'japanese-TeX-mode) japanese-TeX-mode
- "japanese-")
- (substring (symbol-name major-mode) 0 -5))))
+ (let* ((mode (if (stringp TeX-master)
+ (with-current-buffer
+ (find-file-noselect
+ (TeX-master-file TeX-default-extension))
+ major-mode)
+ major-mode))
+ (comment-prefix (cond ((eq mode 'texinfo-mode) "@c ")
+ ((eq mode 'doctex-mode) "% ")
+ (t "%%% ")))
+ (mode-string (concat (and (boundp 'japanese-TeX-mode)
japanese-TeX-mode
+ "japanese-")
+ (substring (symbol-name mode) 0 -5))))
(newline)
(when (eq major-mode 'doctex-mode)
(insert comment-prefix TeX-esc "endinput\n"))
(insert
comment-prefix "Local Variables:\n"
- comment-prefix "mode: " mode "\n"
+ comment-prefix "mode: " mode-string "\n"
comment-prefix "TeX-master: " (prin1-to-string TeX-master) "\n"
- comment-prefix "End:\n")))))
+ comment-prefix "End:\n")
+ (funcall mode)))))
(defun TeX-local-master-p ()
"Return non-nil if there is a `TeX-master' entry in local variables spec.