# HG changeset patch # User Jay Belanger # Date 1110259604 0 # Node ID 8df8779687e19c20de339d59d9d3b11163275285 # Parent 46609ac51b4408610c1bd8a59ab27f00f2f61a90 (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. diff -r 46609ac51b44 -r 8df8779687e1 lisp/calc/calc-embed.el --- a/lisp/calc/calc-embed.el Tue Mar 08 03:59:54 2005 +0000 +++ b/lisp/calc/calc-embed.el Tue Mar 08 05:26:44 2005 +0000 @@ -244,6 +244,13 @@ (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 @@ (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 @@ (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,