From: Eli Zaretskii Date: Sat, 23 Jan 2021 09:28:32 +0000 (+0200) Subject: Fix last change X-Git-Tag: emacs-27.1.91~7 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=3443a1c698790fca0481178f08dcb45cca576a30;p=emacs.git Fix last change * doc/lispref/text.texi (Undo): Add a cross-reference to the description of 'undo-amalgamate-change-group'. (Atomic Changes): Expand and improve the description of 'undo-amalgamate-change-group'. (Bug#42303) --- diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi index 5eead42031d..89582acd35a 100644 --- a/doc/lispref/text.texi +++ b/doc/lispref/text.texi @@ -1422,6 +1422,11 @@ the @code{amalgamating-undo-limit} variable. If this variable is 1, no changes are amalgamated. @end defun +A Lisp program can amalgamate a series of changes into a single change +group by calling @code{undo-amalgamate-change-group} (@pxref{Atomic +Changes}). Note that @code{amalgamating-undo-limit} has no effect on +the groups produced by that function. + @defvar undo-auto-current-boundary-timer Some buffers, such as process buffers, can change even when no commands are executing. In these cases, @code{undo-boundary} is @@ -5561,9 +5566,17 @@ This function cancels and undoes all the changes in the change group specified by @var{handle}. @end defun + You can cause some or all of the changes in a change group to be +considered as a single unit for the purposes of the @code{undo} +commands (@pxref{Undo}) by using @code{undo-amalgamate-change-group}. + @defun undo-amalgamate-change-group -Amalgamate changes in change-group since @var{handle}. I.e., remove -all undo boundaries between the state of @var{handle} and now. +Amalgamate all the changes made in the change-group since the state +identified by @var{handle}. This function removes all undo boundaries +between undo records of changes since the state described by +@var{handle}. Usually, @var{handle} is the handle returned by +@code{prepare-change-group}, in which case all the changes since the +beginning of the change-group are amalgamated into a single undo unit. @end defun Your code should use @code{unwind-protect} to make sure the group is