[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#39680: 27.0.60; electric-pair-mode broken by undo
From: |
Kévin Le Gouguec |
Subject: |
bug#39680: 27.0.60; electric-pair-mode broken by undo |
Date: |
Tue, 10 Mar 2020 07:45:38 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) |
Stefan Monnier <monnier@iro.umontreal.ca> writes:
>> Stefan, what is your view on this attempted patch? Is it sound?
>
> I think we need something like the patch below (not really tested yet).
> WDYT?
FWIW, I applied it and AFAICT I can't reproduce the issue.
>>> Thank you for your time.
>> Thank you for a good bug report, conveniently reduced to a minimum test
>> case.
>
> Indeed. This is pretty delicate code, so a concise and easy to reproduce
> test case is very welcome.
Happy to help. Though I wonder why my attempted ERT test only fails
half the time. Reproduced here for context:
(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))))
With your patch, C-x C-e'ing the inner with-temp-buffer form once
triggers no error (an "Undo" shows up in *Messages*); C-x C-e'ing a
second time without moving point causes a "No further undo information"
user error.
At any rate, thanks for the fix!