;;; calc-embed.el --- embed Calc in a buffer
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;; 2005, 2006 Free Software Foundation, Inc.
;; Author: David Gillespie <daveg@synaptics.com>
;; Maintainer: Jay Belanger <belanger@truman.edu>
(defvar calc-embedded-firsttime-buf)
(defvar calc-embedded-firsttime-formula)
+;; The following is to take care of any minor modes which override
+;; a Calc command.
+(defvar calc-override-minor-modes-map
+ (make-sparse-keymap)
+ "A list of keybindings that might be overwritten by minor modes.")
+
+;; Add any keys that might be overwritten here.
+(define-key calc-override-minor-modes-map "`" 'calc-edit)
+
+(defvar calc-override-minor-modes
+ (cons t calc-override-minor-modes-map))
+
(defun calc-do-embedded (calc-embed-arg end obeg oend)
(if calc-embedded-info
truncate-lines (nth 2 mode)
buffer-read-only nil)
(use-local-map (nth 1 mode))
+ (setq minor-mode-overriding-map-alist
+ (remq calc-override-minor-modes minor-mode-overriding-map-alist))
(set-buffer-modified-p (buffer-modified-p))
(calc-embedded-restore-original-modes)
(or calc-embedded-quiet
buffer-read-only t)
(set-buffer-modified-p (buffer-modified-p))
(use-local-map calc-mode-map)
+ (setq minor-mode-overriding-map-alist
+ (cons calc-override-minor-modes
+ minor-mode-overriding-map-alist))
(setq calc-no-refresh-evaltos nil)
(and chg calc-any-evaltos (calc-wrapper (calc-refresh-evaltos)))
(let (str)
(or (eq calc-embedded-quiet t)
(message "Embedded Calc mode enabled; %s to return to normal"
(if calc-embedded-quiet
- "Type `M-# x'"
+ "Type `C-x * x'"
"Give this command again")))))
(scroll-down 0)) ; fix a bug which occurs when truncate-lines is changed.
(substring str pref-len suff-pos)))
(if (string-match "[^ \t\n]" str)
(setq pref-len 0
- val (math-read-big-expr str))
+ val (condition-case nil
+ (math-read-big-expr str)
+ (error (math-read-expr str))))
(setq val nil))))
(if (eq (car-safe val) 'error)
(setq val (list 'error