Subject: Re: bug#23785: Emacs 25: "Undo" overdoes things.

From: Alan Mackenzie <[email-masked]>
Date: Fri, 17 Jun 2016 17:45:35 +0000

Hello, Eli.

On Fri, Jun 17, 2016 at 08:15:18PM +0300, Eli Zaretskii wrote:
> > Date: Fri, 17 Jun 2016 15:02:45 +0000
> > From: Alan Mackenzie <[email-masked]>

> > Summary: `undo' is broken in Emacs 25.

> > In GNU Emacs 25.0.94.2 (x86_64-unknown-linux-gnu, GTK+ Version 3.18.7)
> >  of 2016-06-07 built on acm
> > Repository revision: 9d5ccebeba0506f7280662630f0ee85a52c8a327
> > Configured using:
> >  'configure --with-tiff=no --with-gif=no --with-gpm'

> > 1. emacs -Q
> > 2. C-x C-f decls-6.cc    ; file is attached.
> > 3. Move point to BOL 17.
> > 4. C-o, and insert the line "Type var = init;".  Call this line 16½.
> > 5. M-x revert-buffer.
> > 6. Move point to "[" on L16, and use C-M-k to delete "[3 * peq]".
> > 7. C-_.  This restores "[3 * peq]" (correctly) but also reinserts line
> >    16½ (which is a bug).

> Why does this minor issue deserve to declare 'undo' "broken"?  Looks
> like an exaggeration to me.

I don't think it's all that minor an issue.  `undo' can no longer be
depended upon to restore a buffer to its unchanged state.

I've suffered several similar annoyances with `undo' in the emacs-25
branch.

Each buffer changing command is meant to have its own undo boundary
(with the exception of self-insert-command and the single character
deleting command).

And having to undo/redo command sequences by hand is _very_ irritating
when testing.

I think there's a case to be made for fixing this bug for Emacs 25.1.

-- 
Alan Mackenzie (Nuremberg, Germany).