200 |
(defvar calc-embed-arg) |
(defvar calc-embed-arg) |
201 |
|
|
202 |
(defvar calc-embedded-quiet nil) |
(defvar calc-embedded-quiet nil) |
203 |
|
|
204 |
|
(defvar calc-embedded-firsttime) |
205 |
|
(defvar calc-embedded-firsttime-buf) |
206 |
|
(defvar calc-embedded-firsttime-formula) |
207 |
|
|
208 |
(defun calc-do-embedded (calc-embed-arg end obeg oend) |
(defun calc-do-embedded (calc-embed-arg end obeg oend) |
209 |
(if calc-embedded-info |
(if calc-embedded-info |
210 |
|
|
256 |
(let ((modes (list mode-line-buffer-identification |
(let ((modes (list mode-line-buffer-identification |
257 |
(current-local-map) |
(current-local-map) |
258 |
truncate-lines)) |
truncate-lines)) |
259 |
|
(calc-embedded-firsttime (not calc-embedded-active)) |
260 |
|
(calc-embedded-firsttime-buf nil) |
261 |
|
(calc-embedded-firsttime-formula nil) |
262 |
calc-embed-top calc-embed-bot calc-embed-outer-top calc-embed-outer-bot |
calc-embed-top calc-embed-bot calc-embed-outer-top calc-embed-outer-bot |
263 |
info chg ident) |
info chg ident) |
264 |
(barf-if-buffer-read-only) |
(barf-if-buffer-read-only) |
305 |
(unless (equal str mode-line-buffer-identification) |
(unless (equal str mode-line-buffer-identification) |
306 |
(setq mode-line-buffer-identification str) |
(setq mode-line-buffer-identification str) |
307 |
(set-buffer-modified-p (buffer-modified-p)))) |
(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)) |
314 |
(or (eq calc-embedded-quiet t) |
(or (eq calc-embedded-quiet t) |
315 |
(message "Embedded Calc mode enabled; %s to return to normal" |
(message "Embedded Calc mode enabled; %s to return to normal" |
316 |
(if calc-embedded-quiet |
(if calc-embedded-quiet |
806 |
(new-info nil) |
(new-info nil) |
807 |
info str) |
info str) |
808 |
(or found |
(or found |
809 |
(setq found (list (current-buffer)) |
(and |
810 |
calc-embedded-active (cons found calc-embedded-active))) |
(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))))))) |
848 |
(while (and (cdr found) |
(while (and (cdr found) |
849 |
(> point (aref (car (cdr found)) 3))) |
(> point (aref (car (cdr found)) 3))) |
850 |
(setq found (cdr found))) |
(setq found (cdr found))) |
851 |
(if (and (cdr found) |
(if (and (cdr found) |
852 |
(>= point (aref (nth 1 found) 2))) |
(>= point (aref (nth 1 found) 2))) |
853 |
(setq info (nth 1 found)) |
(setq info (nth 1 found)) |
854 |
|
(setq calc-embedded-firsttime-formula t) |
855 |
(setq info (make-vector 16 nil) |
(setq info (make-vector 16 nil) |
856 |
new-info t |
new-info t |
857 |
fresh t) |
fresh t) |