Mercurial > emacs
diff lisp/calc/calc-ext.el @ 90072:cb67264d6096
Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-2
Merge from emacs--cvs-trunk--0
Patches applied:
* miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-83
- miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-84
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-3
- miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-4
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-5
Merge from gnus--rel--5.10
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-6
- miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-11
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-12
Remove "-face" suffix from lazy-highlight face name
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-13
- miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-16
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-17
Merge from gnus--rel--5.10
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-18
- miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-21
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-22
<no summary provided>
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-23
- miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-39
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-40
Fix regressions from latest reftex update
* miles@gnu.org--gnu-2005/gnus--rel--5.10--base-0
tag of miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-82
* miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-1
Merge from emacs--cvs-trunk--0
* miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-2
Merge from miles@gnu.org--gnu-2004
* miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-3
Merge from emacs--cvs-trunk--0
author | Miles Bader <miles@gnu.org> |
---|---|
date | Sun, 16 Jan 2005 03:40:12 +0000 |
parents | fb79180b618d 3a5d173e246a |
children | 6d92d69fae33 |
line wrap: on
line diff
--- a/lisp/calc/calc-ext.el Sun Jan 02 09:21:32 2005 +0000 +++ b/lisp/calc/calc-ext.el Sun Jan 16 03:40:12 2005 +0000 @@ -1240,36 +1240,54 @@ (defun calc-reset (arg) (interactive "P") - (save-excursion - (or (eq major-mode 'calc-mode) - (calc-create-buffer)) - (if calc-embedded-info - (calc-embedded nil)) - (or arg - (setq calc-stack nil)) - (setq calc-undo-list nil - calc-redo-list nil) - (let (calc-stack calc-user-parse-tables calc-standard-date-formats - calc-invocation-macro) - (mapcar (function (lambda (v) (set v nil))) calc-local-var-list) - (mapcar (function (lambda (v) (set (car v) (nth 1 v)))) - calc-mode-var-list)) - (calc-set-language nil nil t) - (calc-mode) - (calc-flush-caches t) - (run-hooks 'calc-reset-hook)) - (calc-wrapper - (let ((win (get-buffer-window (current-buffer)))) - (calc-realign 0) - (if win - (let ((height (- (window-height win) 2))) - (set-window-point win (point)) - (or (= height calc-window-height) - (let ((swin (selected-window))) - (select-window win) - (enlarge-window (- calc-window-height height)) - (select-window swin))))))) - (message "(Calculator reset)")) + (setq arg (if arg (prefix-numeric-value arg) nil)) + (cond + ((and + calc-embedded-info + (equal (aref calc-embedded-info 0) (current-buffer)) + (<= (point) (aref calc-embedded-info 5)) + (>= (point) (aref calc-embedded-info 4))) + (let ((cbuf (aref calc-embedded-info 1)) + (calc-embedded-quiet t)) + (save-window-excursion + (calc-embedded nil) + (set-buffer cbuf) + (calc-reset arg)) + (calc-embedded nil))) + ((eq major-mode 'calc-mode) + (save-excursion + (unless (and arg (> (abs arg) 0)) + (setq calc-stack nil)) + (setq calc-undo-list nil + calc-redo-list nil) + (let (calc-stack calc-user-parse-tables calc-standard-date-formats + calc-invocation-macro) + (mapcar (function (lambda (v) (set v nil))) calc-local-var-list) + (if (and arg (<= arg 0)) + (calc-mode-var-list-restore-default-values) + (calc-mode-var-list-restore-saved-values))) + (calc-set-language nil nil t) + (calc-mode) + (calc-flush-caches t) + (run-hooks 'calc-reset-hook)) + (calc-wrapper + (let ((win (get-buffer-window (current-buffer)))) + (calc-realign 0) + ;; Adjust the window height if the window is visible, but doesn't + ;; take up the whole height of the frame. + (if (and + win + (< (window-height win) (1- (frame-height)))) + (let ((height (- (window-height win) 2))) + (set-window-point win (point)) + (or (= height calc-window-height) + (let ((swin (selected-window))) + (select-window win) + (enlarge-window (- calc-window-height height)) + (select-window swin))))))) + (message "(Calculator reset)")) + (t + (message "(Not inside a Calc buffer)")))) ;; What a pain; scroll-left behaves differently when called non-interactively. (defun calc-scroll-left (n)