Mercurial > emacs
comparison lisp/calc/calc-embed.el @ 64186:d14a59c4f989
(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.
author | Jay Belanger <jay.p.belanger@gmail.com> |
---|---|
date | Sat, 09 Jul 2005 03:42:56 +0000 |
parents | 331d8f0bb84c |
children | 1db49616ce05 fbb2bea03df9 |
comparison
equal
deleted
inserted
replaced
64185:c6d6fa805aad | 64186:d14a59c4f989 |
---|---|
198 ;; calc-embedded-make-info, which is called by the above | 198 ;; calc-embedded-make-info, which is called by the above |
199 ;; functions. | 199 ;; functions. |
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 |
206 ;; Turn embedded mode off or switch to a new buffer. | 211 ;; Turn embedded mode off or switch to a new buffer. |
207 (cond ((eq (current-buffer) (aref calc-embedded-info 1)) | 212 (cond ((eq (current-buffer) (aref calc-embedded-info 1)) |
249 ;; Turn embedded mode on. | 254 ;; Turn embedded mode on. |
250 (calc-plain-buffer-only) | 255 (calc-plain-buffer-only) |
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) |
257 (calc-embedded-save-original-modes) | 265 (calc-embedded-save-original-modes) |
258 (or calc-embedded-globals | 266 (or calc-embedded-globals |
295 (calc-select-buffer) | 303 (calc-select-buffer) |
296 (setq str mode-line-buffer-identification)) | 304 (setq str mode-line-buffer-identification)) |
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 |
303 "Type `M-# x'" | 317 "Type `M-# x'" |
304 "Give this command again"))))) | 318 "Give this command again"))))) |
790 (force (and fresh calc-embed-top)) | 804 (force (and fresh calc-embed-top)) |
791 (fixed calc-embed-top) | 805 (fixed calc-embed-top) |
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) |
806 (aset info 0 (current-buffer)) | 858 (aset info 0 (current-buffer)) |
807 (aset info 1 (or cbuf (save-excursion | 859 (aset info 1 (or cbuf (save-excursion |