From b6e8e8e55dba10595b059df3638a85b10c3d3d1f Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Tue, 21 Dec 2004 11:37:52 +0000 Subject: [PATCH] (undo-outer-limit-truncate): New function. (undo-outer-limit-function): Use undo-outer-limit-truncate. --- lisp/simple.el | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lisp/simple.el b/lisp/simple.el index 3c9e8c72428..9f1bde393ee 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -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)) (defvar shell-command-history nil "History list for some commands that read shell commands.") -- 2.39.5