/[emacs]/emacs/lisp/calc/calc-embed.el
ViewVC logotype

Diff of /emacs/lisp/calc/calc-embed.el

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.3 by walters, Wed Nov 14 09:02:55 2001 UTC revision 1.4 by walters, Mon Nov 19 07:32:58 2001 UTC
# Line 1  Line 1 
1  ;; Calculator for GNU Emacs, part II [calc-embed.el]  ;;; calc-embed.el --- embed Calc in a buffer
2    
3  ;; Copyright (C) 1990, 1991, 1992, 1993, 2001 Free Software Foundation, Inc.  ;; Copyright (C) 1990, 1991, 1992, 1993, 2001 Free Software Foundation, Inc.
4  ;; Written by Dave Gillespie, daveg@synaptics.com.  
5    ;; Author: David Gillespie <daveg@synaptics.com>
6    ;; Maintainer: Colin Walters <walters@debian.org>
7    
8  ;; This file is part of GNU Emacs.  ;; This file is part of GNU Emacs.
9    
# Line 19  Line 22 
22  ;; file named COPYING.  Among other things, the copyright notice  ;; file named COPYING.  Among other things, the copyright notice
23  ;; and this notice must be preserved on all copies.  ;; and this notice must be preserved on all copies.
24    
25    ;;; Commentary:
26    
27    ;;; Code:
28    
29  ;; This file is autoloaded from calc-ext.el.  ;; This file is autoloaded from calc-ext.el.
30  (require 'calc-ext)  (require 'calc-ext)
# Line 28  Line 33 
33    
34  (defun calc-Need-calc-embed () nil)  (defun calc-Need-calc-embed () nil)
35    
   
36  (defun calc-show-plain (n)  (defun calc-show-plain (n)
37    (interactive "P")    (interactive "P")
38    (calc-wrapper    (calc-wrapper
39     (calc-set-command-flag 'renum-stack)     (calc-set-command-flag 'renum-stack)
40     (message (if (calc-change-mode 'calc-show-plain n nil t)     (message (if (calc-change-mode 'calc-show-plain n nil t)
41                  "Including \"plain\" formulas in Calc Embedded mode."                  "Including \"plain\" formulas in Calc Embedded mode"
42                "Omitting \"plain\" formulas in Calc Embedded mode."))))                "Omitting \"plain\" formulas in Calc Embedded mode"))))
   
   
   
   
 ;;; Things to do for Embedded Mode:  
 ;;;  
 ;;;  Detect and strip off unexpected labels during reading.  
 ;;;  
 ;;;  Get calc-grab-region to use math-read-big-expr.  
 ;;;  If calc-show-plain, main body should have only righthand side of => expr.  
 ;;;  Handle tabs that have crept into embedded formulas.  
 ;;;  After "switching to new formula", home cursor to that formula.  
 ;;;  Do something like \evalto ... \to for \gets operators.  
 ;;;  
43    
44    
45  (defvar calc-embedded-modes nil)  (defvar calc-embedded-modes nil)
46  (defvar calc-embedded-globals nil)  (defvar calc-embedded-globals nil)
47  (defvar calc-embedded-active nil)  (defvar calc-embedded-active nil)
48    (defvar calc-embedded-all-active nil)
49  (make-variable-buffer-local 'calc-embedded-all-active)  (make-variable-buffer-local 'calc-embedded-all-active)
50    (defvar calc-embedded-some-active nil)
51  (make-variable-buffer-local 'calc-embedded-some-active)  (make-variable-buffer-local 'calc-embedded-some-active)
52    
   
53  (defvar calc-embedded-open-formula "\\`\\|^\n\\|\\$\\$?\\|\\\\\\[\\|^\\\\begin.*\n\\|^@.*\n\\|^\\.EQ.*\n\\|\\\\(\\|^%\n\\|^\\.\\\\\"\n"  (defvar calc-embedded-open-formula "\\`\\|^\n\\|\\$\\$?\\|\\\\\\[\\|^\\\\begin.*\n\\|^@.*\n\\|^\\.EQ.*\n\\|\\\\(\\|^%\n\\|^\\.\\\\\"\n"
54    "*A regular expression for the opening delimiter of a formula used by    "*A regular expression for the opening delimiter of a formula used by
55  calc-embedded.")  calc-embedded.")
# Line 162  This is not required to be present for u Line 152  This is not required to be present for u
152  ;;; thrown away when a buffer changes major modes.  ;;; thrown away when a buffer changes major modes.
153    
154    
155    (defvar calc-embedded-quiet nil)
156  (defun calc-do-embedded (arg end obeg oend)  (defun calc-do-embedded (arg end obeg oend)
157    (if calc-embedded-info    (if calc-embedded-info
158    
# Line 195  This is not required to be present for u Line 186  This is not required to be present for u
186                 (use-local-map (nth 1 mode))                 (use-local-map (nth 1 mode))
187                 (set-buffer-modified-p (buffer-modified-p))                 (set-buffer-modified-p (buffer-modified-p))
188                 (or calc-embedded-quiet                 (or calc-embedded-quiet
189                     (message "Back to %s mode." mode-name))))                     (message "Back to %s mode" mode-name))))
190    
191              (t              (t
192               (if (buffer-name (aref calc-embedded-info 0))               (if (buffer-name (aref calc-embedded-info 0))
# Line 246  This is not required to be present for u Line 237  This is not required to be present for u
237        (setq calc-no-refresh-evaltos nil)        (setq calc-no-refresh-evaltos nil)
238        (and chg calc-any-evaltos (calc-wrapper (calc-refresh-evaltos)))        (and chg calc-any-evaltos (calc-wrapper (calc-refresh-evaltos)))
239        (or (eq calc-embedded-quiet t)        (or (eq calc-embedded-quiet t)
240            (message "Embedded Calc mode enabled.  %s to return to normal."            (message "Embedded Calc mode enabled; %s to return to normal"
241                     (if calc-embedded-quiet                     (if calc-embedded-quiet
242                         "Type `M-# x'"                         "Type `M-# x'"
243                       "Give this command again")))))                       "Give this command again")))))
244    (scroll-down 0))    ; fix a bug which occurs when truncate-lines is changed.    (scroll-down 0))    ; fix a bug which occurs when truncate-lines is changed.
 (setq calc-embedded-quiet nil)  
245    
246    
247  (defun calc-embedded-select (arg)  (defun calc-embedded-select (arg)
# Line 335  This is not required to be present for u Line 325  This is not required to be present for u
325        (calc-embedded-forget))        (calc-embedded-forget))
326    (calc-find-globals)    (calc-find-globals)
327    (if (< (prefix-numeric-value arg) 0)    (if (< (prefix-numeric-value arg) 0)
328        (message "Deactivating %s for Calc Embedded mode." (buffer-name))        (message "Deactivating %s for Calc Embedded mode" (buffer-name))
329      (message "Activating %s for Calc Embedded mode..." (buffer-name))      (message "Activating %s for Calc Embedded mode..." (buffer-name))
330      (save-excursion      (save-excursion
331        (let* ((active (assq (current-buffer) calc-embedded-active))        (let* ((active (assq (current-buffer) calc-embedded-active))
# Line 1002  The command \\[yank] can retrieve it fro Line 992  The command \\[yank] can retrieve it fro
992    
993  ;;; These are hooks called by the main part of Calc.  ;;; These are hooks called by the main part of Calc.
994    
995    (defvar calc-embedded-no-reselect nil)
996  (defun calc-embedded-select-buffer ()  (defun calc-embedded-select-buffer ()
997    (if (eq (current-buffer) (aref calc-embedded-info 0))    (if (eq (current-buffer) (aref calc-embedded-info 0))
998        (let ((info calc-embedded-info)        (let ((info calc-embedded-info)
# Line 1031  The command \\[yank] can retrieve it fro Line 1022  The command \\[yank] can retrieve it fro
1022          (forward-char (min horiz          (forward-char (min horiz
1023                             (- (point-max) (point)))))                             (- (point-max) (point)))))
1024      (calc-select-buffer)))      (calc-select-buffer)))
 (setq calc-embedded-no-reselect nil)  
1025    
1026  (defun calc-embedded-finish-command ()  (defun calc-embedded-finish-command ()
1027    (let ((buf (current-buffer))    (let ((buf (current-buffer))
# Line 1206  The command \\[yank] can retrieve it fro Line 1196  The command \\[yank] can retrieve it fro
1196                           (calc-embedded-update (car p) 14 t nil)))                           (calc-embedded-update (car p) 14 t nil)))
1197                      (setcdr (car bp) (delq (car p) (cdr (car bp))))                      (setcdr (car bp) (delq (car p) (cdr (car bp))))
1198                      (message                      (message
1199                       "(Tried to recompute but formula was changed or missing.)"))))                       "(Tried to recompute but formula was changed or missing)"))))
1200              (setq p (cdr p))))              (setq p (cdr p))))
1201          (setq bp (if buf nil (cdr bp))))          (setq bp (if buf nil (cdr bp))))
1202        (or first calc-embedded-quiet (message "")))))        (or first calc-embedded-quiet (message "")))))
1203    
1204  ;;; calc-embed.el ends here  ;;; calc-embed.el ends here
   
   
   

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26