summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPhillip Lord <phillip.lord@russet.org.uk>2016-06-06 09:35:17 +0100
committerPhillip Lord <phillip.lord@russet.org.uk>2016-06-08 22:45:00 +0100
commita813487f1adf4cf59d7a471d62d22f706f9eab1d (patch)
tree873e54935a7e221778155e2abe2e8e2097b2d01b /src
parent1f85b7ca034ee4f96d796d95ec86bc4fa0ba8aa3 (diff)
downloademacs-a813487f1adf4cf59d7a471d62d22f706f9eab1d.tar.gz
Fix undo boundary in recursive edit (Bug#23632)
* src/keyboard.c (recursive_edit_1): specbind undo-auto--undoably-changed-buffers. * lisp/simple.el (undo-auto--undoably-changed-buffers): fix docstring.
Diffstat (limited to 'src')
-rw-r--r--src/keyboard.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/keyboard.c b/src/keyboard.c
index e3858a5d8dc..2db9aaf0297 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -681,6 +681,14 @@ recursive_edit_1 (void)
specbind (Qinhibit_redisplay, Qnil);
redisplaying_p = 0;
+ /* This variable stores buffers that have changed so that an undo
+ boundary can be added. specbind this so that changes in the
+ recursive edit will not result in undo boundaries in buffers
+ changed before we entered there recursive edit.
+ See Bug #23632.
+ */
+ specbind (Qundo_auto__undoably_changed_buffers, Qnil);
+
val = command_loop ();
if (EQ (val, Qt))
Fsignal (Qquit, Qnil);
@@ -10956,6 +10964,8 @@ syms_of_keyboard (void)
DEFSYM (Qpost_command_hook, "post-command-hook");
DEFSYM (Qundo_auto__add_boundary, "undo-auto--add-boundary");
+ DEFSYM (Qundo_auto__undoably_changed_buffers,
+ "undo-auto--undoably-changed-buffers");
DEFSYM (Qdeferred_action_function, "deferred-action-function");
DEFSYM (Qdelayed_warnings_hook, "delayed-warnings-hook");