]> git.eshelyaron.com Git - emacs.git/commitdiff
(undo-outer-limit-truncate): New function.
authorRichard M. Stallman <rms@gnu.org>
Tue, 21 Dec 2004 11:37:52 +0000 (11:37 +0000)
committerRichard M. Stallman <rms@gnu.org>
Tue, 21 Dec 2004 11:37:52 +0000 (11:37 +0000)
(undo-outer-limit-function): Use undo-outer-limit-truncate.

lisp/simple.el

index 3c9e8c724285a979b4d7929f6833165ae5630fa6..9f1bde393ee0eecbfd7a4cdf34b8ff8167c49d80 100644 (file)
@@ -1484,6 +1484,17 @@ is not *inside* the region START...END."
            (t
             '(0 . 0)))
     '(0 . 0)))
+
+;; When the first undo batch in an undo list is longer than undo-outer-limit,
+;; this function gets called to ask the user what to do.
+;; Garbage collection is inhibited around the call,
+;; so it had better not do a lot of consing.
+(setq undo-outer-limit-function 'undo-outer-limit-truncate)
+(defun undo-outer-limit-truncate (size)
+  (if (yes-or-no-p (format "Buffer %s undo info is %d bytes long; discard it? "
+                          (buffer-name) size))
+      (progn (setq buffer-undo-list nil) t)
+    nil))
 \f
 (defvar shell-command-history nil
   "History list for some commands that read shell commands.")