diff options
author | Phillip Lord <phillip.lord@russet.org.uk> | 2016-05-21 10:06:12 +0100 |
---|---|---|
committer | Phillip Lord <phillip.lord@russet.org.uk> | 2016-05-21 10:06:12 +0100 |
commit | d096e5780393bb406bf1b8591ef1a006a1a048d5 (patch) | |
tree | 24ddfe0c6012e26e2884b90308daa7b09817de16 /lisp/simple.el | |
parent | 6de0715f5467d4b925e2dfe082174529ace3b174 (diff) | |
download | emacs-fix/viper-undo-squash.tar.gz |
Fix viper undo breakage from undo-boundary changesfix/viper-undo-squash
* lisp/simple.el (undo-auto-disable-boundaries): New variable
* lisp/emulation/viper-init.el (viper-undo-in-complex-command,
viper-undo-needs-adjustment): Rename
variable to reflect new purpose,
(viper-buffer-undo-list-mark): Remove
* lisp/emulation/viper-cmd.el (viper-set-complex-command-for-undo):
Add undo using `undo-boundary', disable default undo-boundary
addition.
* lisp/emulation/viper-cmd.el
(viper-complete-complex-command-for-undo,viper-adjust-undo):
Change function name, remove old undo list manipulation.
* lisp/emulation/viper-cmd.el (viper-undo,viper-repeat,
viper-change-state-to-vi,viper-change-state):
Update for function name change.
Diffstat (limited to 'lisp/simple.el')
-rw-r--r-- | lisp/simple.el | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/lisp/simple.el b/lisp/simple.el index 97b40bd214e..c5aa2922475 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -2839,6 +2839,18 @@ 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 @@ -2878,7 +2890,8 @@ REASON describes the reason that the boundary is being added; see (dolist (b undo-auto--undoably-changed-buffers) (when (buffer-live-p b) (with-current-buffer b - (undo-auto--ensure-boundary cause)))) + (unless undo-auto-disable-boundaries + (undo-auto--ensure-boundary cause))))) (setq undo-auto--undoably-changed-buffers nil)) (defun undo-auto--boundary-timer () @@ -2905,10 +2918,10 @@ See also `undo-auto--buffer-undoably-changed'.") "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. |