diff options
| author | Jay Belanger <jay.p.belanger@gmail.com> | 2005-07-09 03:42:56 +0000 | 
|---|---|---|
| committer | Jay Belanger <jay.p.belanger@gmail.com> | 2005-07-09 03:42:56 +0000 | 
| commit | 33739eb852dfb3f54553ccbb6988df85572353da (patch) | |
| tree | 2127b205f8e8bc419aebfce0c1449cf823c36f5a /lisp/calc/calc-embed.el | |
| parent | ed6cefb42c8847289ff83bf43b5370d878c93697 (diff) | |
| download | emacs-33739eb852dfb3f54553ccbb6988df85572353da.tar.gz | |
(calc-embedded-firsttime, calc-embedded-firsttime-buf,
calc-embedded-firsttime-formula): New variables.
(calc-do-embedded): Use calc-embedded-firsttime,
calc-embedded-firsttime-buf and calc-embedded-firsttime-formula to
determine whether or not to run hooks.
(calc-embedded-make-info) Set calc-embedded-firsttime-buf and
calc-embedded-firsttime-formula appropriately.
Set calc-embedded delimiter variables according to mode.
Diffstat (limited to 'lisp/calc/calc-embed.el')
| -rw-r--r-- | lisp/calc/calc-embed.el | 58 | 
1 files changed, 55 insertions, 3 deletions
diff --git a/lisp/calc/calc-embed.el b/lisp/calc/calc-embed.el index c6e0e33e559..0a7696c9311 100644 --- a/lisp/calc/calc-embed.el +++ b/lisp/calc/calc-embed.el @@ -200,6 +200,11 @@  (defvar calc-embed-arg)  (defvar calc-embedded-quiet nil) + +(defvar calc-embedded-firsttime) +(defvar calc-embedded-firsttime-buf) +(defvar calc-embedded-firsttime-formula) +  (defun calc-do-embedded (calc-embed-arg end obeg oend)    (if calc-embedded-info @@ -251,6 +256,9 @@      (let ((modes (list mode-line-buffer-identification  		       (current-local-map)  		       truncate-lines)) +          (calc-embedded-firsttime (not calc-embedded-active)) +          (calc-embedded-firsttime-buf nil) +          (calc-embedded-firsttime-formula nil)  	  calc-embed-top calc-embed-bot calc-embed-outer-top calc-embed-outer-bot  	  info chg ident)        (barf-if-buffer-read-only) @@ -297,6 +305,12 @@          (unless (equal str mode-line-buffer-identification)            (setq mode-line-buffer-identification str)            (set-buffer-modified-p (buffer-modified-p)))) +      (if calc-embedded-firsttime +          (run-hooks 'calc-embedded-mode-hook)) +      (if calc-embedded-firsttime-buf +          (run-hooks 'calc-embedded-new-buffer-hook)) +      (if calc-embedded-firsttime-formula +          (run-hooks 'calc-embedded-new-formula-hook))        (or (eq calc-embedded-quiet t)  	  (message "Embedded Calc mode enabled; %s to return to normal"  		   (if calc-embedded-quiet @@ -792,14 +806,52 @@ The command \\[yank] can retrieve it from there."  	 (new-info nil)  	 info str)      (or found -	(setq found (list (current-buffer)) -	      calc-embedded-active (cons found calc-embedded-active))) +        (and +         (setq found (list (current-buffer)) +               calc-embedded-active (cons found calc-embedded-active) +               calc-embedded-firsttime-buf t) +         (let ((newann (assoc major-mode calc-embedded-announce-formula-alist)) +               (newform (assoc major-mode calc-embedded-open-close-formula-alist)) +               (newword (assoc major-mode calc-embedded-open-close-word-alist)) +               (newplain (assoc major-mode calc-embedded-open-close-plain-alist)) +               (newnewform  +                (assoc major-mode calc-embedded-open-close-new-formula-alist)) +               (newmode (assoc major-mode calc-embedded-open-close-mode-alist))) +           (when newann +             (make-local-variable 'calc-embedded-announce-formula) +             (setq calc-embedded-announce-formula (cdr newann))) +           (when newform +             (make-local-variable 'calc-embedded-open-formula) +             (make-local-variable 'calc-embedded-close-formula) +             (setq calc-embedded-open-formula (nth 0 (cdr newform))) +             (setq calc-embedded-close-formula (nth 1 (cdr newform)))) +           (when newword +             (make-local-variable 'calc-embedded-open-word) +             (make-local-variable 'calc-embedded-close-word) +             (setq calc-embedded-open-word (nth 0 (cdr newword))) +             (setq calc-embedded-close-word (nth 1 (cdr newword)))) +           (when newplain +             (make-local-variable 'calc-embedded-open-plain) +             (make-local-variable 'calc-embedded-close-plain) +             (setq calc-embedded-open-plain (nth 0 (cdr newplain))) +             (setq calc-embedded-close-plain (nth 1 (cdr newplain)))) +           (when newnewform +             (make-local-variable 'calc-embedded-open-new-formula) +             (make-local-variable 'calc-embedded-close-new-formula) +             (setq calc-embedded-open-new-formula (nth 0 (cdr newnewform))) +             (setq calc-embedded-close-new-formula (nth 1 (cdr newnewform)))) +           (when newmode +             (make-local-variable 'calc-embedded-open-mode) +             (make-local-variable 'calc-embedded-close-mode) +             (setq calc-embedded-open-mode (nth 0 (cdr newmode))) +             (setq calc-embedded-close-mode (nth 1 (cdr newmode)))))))      (while (and (cdr found)  		(> point (aref (car (cdr found)) 3)))        (setq found (cdr found)))      (if (and (cdr found)  	     (>= point (aref (nth 1 found) 2))) -	(setq info (nth 1 found)) +        (setq info (nth 1 found)) +      (setq calc-embedded-firsttime-formula t)        (setq info (make-vector 16 nil)  	    new-info t  	    fresh t)  | 
