mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-15 10:30:25 -08:00
Fix viper undo breakage from undo-boundary changes
* 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. Addresses Bug #22295
This commit is contained in:
parent
920d76c208
commit
c0139e32f1
3 changed files with 32 additions and 43 deletions
|
|
@ -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.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue