summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorJay Belanger <jay.p.belanger@gmail.com>2005-03-08 05:26:44 +0000
committerJay Belanger <jay.p.belanger@gmail.com>2005-03-08 05:26:44 +0000
commitb332c7d3197eb82342200b5b533a2aba3cf2ad96 (patch)
treedd84e4281c0e108d61a1151958d347d671261d89 /lisp
parent3ee9f6ac67306471052d0e81fc1e1c6ba9850c2f (diff)
downloademacs-b332c7d3197eb82342200b5b533a2aba3cf2ad96.tar.gz
(calc-do-embedded): Set mode line when embedded mode begins.
(calc-embedded-language-alist): New variable. (calc-embedded-find-modes): Use calc-embedded-language-alist to set default language mode.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/calc/calc-embed.el24
1 files changed, 24 insertions, 0 deletions
diff --git a/lisp/calc/calc-embed.el b/lisp/calc/calc-embed.el
index e3b3b6b5b19..b05d6225036 100644
--- a/lisp/calc/calc-embed.el
+++ b/lisp/calc/calc-embed.el
@@ -244,6 +244,13 @@ This is not required to be present for user-written mode annotations.")
(use-local-map calc-mode-map)
(setq calc-no-refresh-evaltos nil)
(and chg calc-any-evaltos (calc-wrapper (calc-refresh-evaltos)))
+ (let (str)
+ (save-excursion
+ (calc-select-buffer)
+ (setq str mode-line-buffer-identification))
+ (unless (equal str mode-line-buffer-identification)
+ (setq mode-line-buffer-identification str)
+ (set-buffer-modified-p (buffer-modified-p))))
(or (eq calc-embedded-quiet t)
(message "Embedded Calc mode enabled; %s to return to normal"
(if calc-embedded-quiet
@@ -670,6 +677,18 @@ The command \\[yank] can retrieve it from there."
(setq calc-embedded-globals (cons t modes))
(goto-char save-pt)))
+(defvar calc-embedded-language-alist
+ '((latex-mode . latex)
+ (tex-mode . tex)
+ (plain-tex-mode . tex)
+ (context-mode . tex)
+ (nroff-mode . eqn)
+ (pascal-mode . pascal)
+ (c-mode . c)
+ (c++-mode . c)
+ (fortran-mode . fortran)
+ (f90-mode . fortran)))
+
(defun calc-embedded-find-modes ()
(let ((case-fold-search nil)
(save-pt (point))
@@ -717,6 +736,11 @@ The command \\[yank] can retrieve it from there."
(setq no-defaults nil)))
(backward-char 6))
(goto-char save-pt)
+ (unless (assq 'the-language modes)
+ (let ((lang (assoc major-mode calc-embedded-language-alist)))
+ (if lang
+ (setq modes (cons (cons 'the-language (cdr lang))
+ modes)))))
(list modes emodes pmodes)))
;; The variable calc-embed-vars-used is local to calc-embedded-make-info,