aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJay Belanger2005-07-09 03:42:56 +0000
committerJay Belanger2005-07-09 03:42:56 +0000
commit33739eb852dfb3f54553ccbb6988df85572353da (patch)
tree2127b205f8e8bc419aebfce0c1449cf823c36f5a
parented6cefb42c8847289ff83bf43b5370d878c93697 (diff)
downloademacs-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.el58
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)