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

From: Eli Zaretskii <[email-masked]>
Date: Fri, 17 Jun 2016 23:07:18 +0300

> Date: Fri, 17 Jun 2016 17:45:35 +0000
> Cc: [email-masked]
> From: Alan Mackenzie <[email-masked]>
> 
> > > 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.

You are being unreasonably subjective on this one.

> `undo' can no longer be depended upon to restore a buffer to its
> unchanged state.

Undo is about undoing changes, and it is documented to lump several
changes together in some situations.  So your expectations are
unreasonably unrealistic to begin with.

> 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).

I don't think this is true, and in any case see no big difference
between several commands each deleting one character and a single
command deleting several characters at once.

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

It depends on what the fix will look like.  If it's simple and safe
enough, I'll agree.