GNU bug report logs -
#39680
27.0.60; electric-pair-mode broken by undo
Previous Next
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your bug report
#39680: 27.0.60; electric-pair-mode broken by undo
which was filed against the emacs package, has been closed.
The explanation is attached below, along with your original report.
If you require more details, please reply to 39680 <at> debbugs.gnu.org.
--
39680: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=39680
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
>> Eli, is the patch below OK for `emacs-27`?
> Yes, thanks.
Thanks, installed,
Stefan
[Message part 3 (message/rfc822, inline)]
Hello,
Commit e66d5a1c45 (2019-02-19T00:00:44Z!monnier <at> iro.umontreal.ca) might
have introduced a bug. From emacs -Q:
1. C-x b foo RET
2. M-x electric-pair-mode RET
3. (
- A closing parenthesis has been inserted.
4. C-b C-f
- This is to break undo grouping.
5. a
6. C-_
7. (
In Emacs 26.3, buffer foo contains "(())" and point is after the
innermost opening bracket.
In Emacs 27, buffer foo contains "()" and point is after the closing
bracket. The *Messages* buffer shows:
> cancel-change-group: Undoing to some unrelated state
NB: this can be reproduced with other electric-pair characters, e.g. ".
I found the bug in a Python buffer trying to write a tuple of strings: I
opened a parenthesis, forgot to add quotes, wrote a string, hit undo,
tried to insert a single quote… and got moved past the end parenthesis
instead.
I tried to write a non-regression test; unfortunately what I came up
with does not catch this bug reliably:
(ert-deftest electric-pair-undo-unrelated-state ()
(with-temp-buffer
(buffer-enable-undo)
(electric-pair-mode)
(let ((last-command-event ?\())
(self-insert-command 1))
(undo-boundary)
(insert "hi there")
(undo)
(let ((last-command-event ?\())
(self-insert-command 1))))
C-x C-e'ing the (with-temp-buffer …) form only triggers the error once
every two evaluations, for some reason.
Thank you for your time.
In GNU Emacs 28.0.50 (build 5, x86_64-pc-linux-gnu, GTK+ Version 3.24.13, cairo version 1.16.0)
of 2020-02-19 built on my-little-tumbleweed
Repository revision: e1e1bd8f85c53fea9f61b6ec99b461ddd93461b9
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12007000
System Description: openSUSE Tumbleweed
Configured using:
'configure --with-xwidgets --with-cairo'
This bug report was last modified 5 years and 61 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.