X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/b7adc2f23787eb72015cd705b873e229db6a5049..058e8562775571790e48b1614e84a9617a9e1e17:/lisp/simple.el diff --git a/lisp/simple.el b/lisp/simple.el index 6c309293bd..bc3e7b83b8 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -2848,18 +2848,6 @@ buffers that were changed during the last command.") If set to non-nil, this will effectively disable the timer.") -(defvar-local undo-auto-disable-boundaries nil - "Disable the automatic addition of boundaries. - -If set to non-nil, `undo-boundary' will not be called -automatically in a buffer either at the end of a command, or as a -result of `undo-auto-current-boundary-timer'. - -When this is set to non-nil, it is important to ensure that -`undo-boundary' is called frequently enough. Failure to do so -will result in user-visible warnings that the situation is -probably a bug.") - (defvar undo-auto--this-command-amalgamating nil "Non-nil if `this-command' should be amalgamated. This variable is set to nil by `undo-auto--boundaries' and is set @@ -2896,11 +2884,14 @@ REASON describes the reason that the boundary is being added; see "Check recently changed buffers and add a boundary if necessary. REASON describes the reason that the boundary is being added; see `undo-last-boundary' for more information." + ;; (Bug #23785) All commands should ensure that there is an undo + ;; boundary whether they have changed the current buffer or not. + (when (eq cause 'command) + (add-to-list 'undo-auto--undoably-changed-buffers (current-buffer))) (dolist (b undo-auto--undoably-changed-buffers) (when (buffer-live-p b) (with-current-buffer b - (unless undo-auto-disable-boundaries - (undo-auto--ensure-boundary cause))))) + (undo-auto--ensure-boundary cause)))) (setq undo-auto--undoably-changed-buffers nil)) (defun undo-auto--boundary-timer () @@ -2919,18 +2910,16 @@ REASON describes the reason that the boundary is being added; see This list is maintained by `undo-auto--undoable-change' and `undo-auto--boundaries' and can be affected by changes to their -default values. - -See also `undo-auto--buffer-undoably-changed'.") +default values.") (defun undo-auto--add-boundary () "Add an `undo-boundary' in appropriate buffers." (undo-auto--boundaries (let ((amal undo-auto--this-command-amalgamating)) - (setq undo-auto--this-command-amalgamating nil) - (if amal - 'amalgamate - 'command)))) + (setq undo-auto--this-command-amalgamating nil) + (if amal + 'amalgamate + 'command)))) (defun undo-auto-amalgamate () "Amalgamate undo if necessary.