[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] emacs/lisp/calc calc.el
From: |
Jay Belanger |
Subject: |
[Emacs-diffs] emacs/lisp/calc calc.el |
Date: |
Tue, 21 Jul 2009 18:56:35 +0000 |
CVSROOT: /cvsroot/emacs
Module name: emacs
Changes by: Jay Belanger <jpb> 09/07/21 18:56:35
Modified files:
lisp/calc : calc.el
Log message:
(calc-undo-length): New variable.
(calc-quit): Truncate rather than eliminate `calc-undo-list'.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/calc/calc.el?cvsroot=emacs&r1=1.126&r2=1.127
Patches:
Index: calc.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/calc/calc.el,v
retrieving revision 1.126
retrieving revision 1.127
diff -u -b -r1.126 -r1.127
--- calc.el 27 Apr 2009 23:07:21 -0000 1.126
+++ calc.el 21 Jul 2009 18:56:35 -0000 1.127
@@ -417,6 +417,12 @@
:group 'calc
:type 'boolean)
+(defcustom calc-undo-length
+ 100
+ "The number of undo steps that will be preserved when Calc is quit."
+ :group 'calc
+ :type 'integer)
+
(defvar calc-bug-address "address@hidden"
"Address of the maintainer of Calc, for use by `report-calc-bug'.")
@@ -1485,7 +1491,14 @@
(unless (eq major-mode 'calc-mode)
(calc-create-buffer))
(run-hooks 'calc-end-hook)
- (setq calc-undo-list nil calc-redo-list nil)
+ (if (integerp calc-undo-length)
+ (cond
+ ((= calc-undo-length 0)
+ (setq calc-undo-list nil calc-redo-list nil))
+ ((> calc-undo-length 0)
+ (let ((tail (nthcdr (1- calc-undo-length) calc-undo-list)))
+ (if tail (setcdr tail nil)))
+ (setq calc-redo-list nil))))
(mapc (function (lambda (v) (set-default v (symbol-value v))))
calc-local-var-list)
(let ((buf (current-buffer))
- [Emacs-diffs] emacs/lisp/calc calc.el,
Jay Belanger <=