diff options
| author | Jay Belanger | 2005-07-09 03:42:56 +0000 |
|---|---|---|
| committer | Jay Belanger | 2005-07-09 03:42:56 +0000 |
| commit | 33739eb852dfb3f54553ccbb6988df85572353da (patch) | |
| tree | 2127b205f8e8bc419aebfce0c1449cf823c36f5a | |
| parent | ed6cefb42c8847289ff83bf43b5370d878c93697 (diff) | |
| download | emacs-33739eb852dfb3f54553ccbb6988df85572353da.tar.gz emacs-33739eb852dfb3f54553ccbb6988df85572353da.zip | |
(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.
| -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 @@ | |||
| 200 | (defvar calc-embed-arg) | 200 | (defvar calc-embed-arg) |
| 201 | 201 | ||
| 202 | (defvar calc-embedded-quiet nil) | 202 | (defvar calc-embedded-quiet nil) |
| 203 | |||
| 204 | (defvar calc-embedded-firsttime) | ||
| 205 | (defvar calc-embedded-firsttime-buf) | ||
| 206 | (defvar calc-embedded-firsttime-formula) | ||
| 207 | |||
| 203 | (defun calc-do-embedded (calc-embed-arg end obeg oend) | 208 | (defun calc-do-embedded (calc-embed-arg end obeg oend) |
| 204 | (if calc-embedded-info | 209 | (if calc-embedded-info |
| 205 | 210 | ||
| @@ -251,6 +256,9 @@ | |||
| 251 | (let ((modes (list mode-line-buffer-identification | 256 | (let ((modes (list mode-line-buffer-identification |
| 252 | (current-local-map) | 257 | (current-local-map) |
| 253 | truncate-lines)) | 258 | truncate-lines)) |
| 259 | (calc-embedded-firsttime (not calc-embedded-active)) | ||
| 260 | (calc-embedded-firsttime-buf nil) | ||
| 261 | (calc-embedded-firsttime-formula nil) | ||
| 254 | calc-embed-top calc-embed-bot calc-embed-outer-top calc-embed-outer-bot | 262 | calc-embed-top calc-embed-bot calc-embed-outer-top calc-embed-outer-bot |
| 255 | info chg ident) | 263 | info chg ident) |
| 256 | (barf-if-buffer-read-only) | 264 | (barf-if-buffer-read-only) |
| @@ -297,6 +305,12 @@ | |||
| 297 | (unless (equal str mode-line-buffer-identification) | 305 | (unless (equal str mode-line-buffer-identification) |
| 298 | (setq mode-line-buffer-identification str) | 306 | (setq mode-line-buffer-identification str) |
| 299 | (set-buffer-modified-p (buffer-modified-p)))) | 307 | (set-buffer-modified-p (buffer-modified-p)))) |
| 308 | (if calc-embedded-firsttime | ||
| 309 | (run-hooks 'calc-embedded-mode-hook)) | ||
| 310 | (if calc-embedded-firsttime-buf | ||
| 311 | (run-hooks 'calc-embedded-new-buffer-hook)) | ||
| 312 | (if calc-embedded-firsttime-formula | ||
| 313 | (run-hooks 'calc-embedded-new-formula-hook)) | ||
| 300 | (or (eq calc-embedded-quiet t) | 314 | (or (eq calc-embedded-quiet t) |
| 301 | (message "Embedded Calc mode enabled; %s to return to normal" | 315 | (message "Embedded Calc mode enabled; %s to return to normal" |
| 302 | (if calc-embedded-quiet | 316 | (if calc-embedded-quiet |
| @@ -792,14 +806,52 @@ The command \\[yank] can retrieve it from there." | |||
| 792 | (new-info nil) | 806 | (new-info nil) |
| 793 | info str) | 807 | info str) |
| 794 | (or found | 808 | (or found |
| 795 | (setq found (list (current-buffer)) | 809 | (and |
| 796 | calc-embedded-active (cons found calc-embedded-active))) | 810 | (setq found (list (current-buffer)) |
| 811 | calc-embedded-active (cons found calc-embedded-active) | ||
| 812 | calc-embedded-firsttime-buf t) | ||
| 813 | (let ((newann (assoc major-mode calc-embedded-announce-formula-alist)) | ||
| 814 | (newform (assoc major-mode calc-embedded-open-close-formula-alist)) | ||
| 815 | (newword (assoc major-mode calc-embedded-open-close-word-alist)) | ||
| 816 | (newplain (assoc major-mode calc-embedded-open-close-plain-alist)) | ||
| 817 | (newnewform | ||
| 818 | (assoc major-mode calc-embedded-open-close-new-formula-alist)) | ||
| 819 | (newmode (assoc major-mode calc-embedded-open-close-mode-alist))) | ||
| 820 | (when newann | ||
| 821 | (make-local-variable 'calc-embedded-announce-formula) | ||
| 822 | (setq calc-embedded-announce-formula (cdr newann))) | ||
| 823 | (when newform | ||
| 824 | (make-local-variable 'calc-embedded-open-formula) | ||
| 825 | (make-local-variable 'calc-embedded-close-formula) | ||
| 826 | (setq calc-embedded-open-formula (nth 0 (cdr newform))) | ||
| 827 | (setq calc-embedded-close-formula (nth 1 (cdr newform)))) | ||
| 828 | (when newword | ||
| 829 | (make-local-variable 'calc-embedded-open-word) | ||
| 830 | (make-local-variable 'calc-embedded-close-word) | ||
| 831 | (setq calc-embedded-open-word (nth 0 (cdr newword))) | ||
| 832 | (setq calc-embedded-close-word (nth 1 (cdr newword)))) | ||
| 833 | (when newplain | ||
| 834 | (make-local-variable 'calc-embedded-open-plain) | ||
| 835 | (make-local-variable 'calc-embedded-close-plain) | ||
| 836 | (setq calc-embedded-open-plain (nth 0 (cdr newplain))) | ||
| 837 | (setq calc-embedded-close-plain (nth 1 (cdr newplain)))) | ||
| 838 | (when newnewform | ||
| 839 | (make-local-variable 'calc-embedded-open-new-formula) | ||
| 840 | (make-local-variable 'calc-embedded-close-new-formula) | ||
| 841 | (setq calc-embedded-open-new-formula (nth 0 (cdr newnewform))) | ||
| 842 | (setq calc-embedded-close-new-formula (nth 1 (cdr newnewform)))) | ||
| 843 | (when newmode | ||
| 844 | (make-local-variable 'calc-embedded-open-mode) | ||
| 845 | (make-local-variable 'calc-embedded-close-mode) | ||
| 846 | (setq calc-embedded-open-mode (nth 0 (cdr newmode))) | ||
| 847 | (setq calc-embedded-close-mode (nth 1 (cdr newmode))))))) | ||
| 797 | (while (and (cdr found) | 848 | (while (and (cdr found) |
| 798 | (> point (aref (car (cdr found)) 3))) | 849 | (> point (aref (car (cdr found)) 3))) |
| 799 | (setq found (cdr found))) | 850 | (setq found (cdr found))) |
| 800 | (if (and (cdr found) | 851 | (if (and (cdr found) |
| 801 | (>= point (aref (nth 1 found) 2))) | 852 | (>= point (aref (nth 1 found) 2))) |
| 802 | (setq info (nth 1 found)) | 853 | (setq info (nth 1 found)) |
| 854 | (setq calc-embedded-firsttime-formula t) | ||
| 803 | (setq info (make-vector 16 nil) | 855 | (setq info (make-vector 16 nil) |
| 804 | new-info t | 856 | new-info t |
| 805 | fresh t) | 857 | fresh t) |