unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Alan Mackenzie <acm@muc.de>
To: 23785@debbugs.gnu.org
Subject: bug#23785: Emacs 25: "Undo" overdoes things.
Date: Fri, 17 Jun 2016 15:02:45 +0000	[thread overview]
Message-ID: <20160617150245.GB3316@acm.fritz.box> (raw)

[-- Attachment #1: Type: text/plain, Size: 1001 bytes --]

Hello, Emacs.

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

[For reference, the pertinent part of the file looks like this.  In the
actual file "Type" is at column zero:

14.   Type var = init, x = Type();
15.   Type (*var) = init;
16.   Type var[3 * peq] = init;
16½.  Type var = init;         <======== inserted line.
17.   Type (var) = init;
18.   Type int = "int";               // int

].

-- 
Alan Mackenzie (Nuremberg, Germany).


[-- Attachment #2: decls-6.cc --]
[-- Type: text/x-c, Size: 1200 bytes --]

__INLINE__ FOO Type var, x;
__INLINE__ FOO Type *var;
__INLINE__ FOO Type var[3 * peq];

// This is an init paren that currently incorrectly causes the
// variable to be recognized as a function.
__INLINE__ FOO Type var (peq);

__INLINE__ FOO Type var = init, x = Type();
__INLINE__ FOO Type (*var) = init;
__INLINE__ FOO Type var[3 * peq] = init;
__INLINE__ FOO Type var int = "int"; // int

Type var = init, x = Type();
Type (*var) = init;
Type var[3 * peq] = init;
Type (var) = init;
Type int = "int";		// int

const Type var;
const Type (*var);
const Type var[3 * peq];
const Type (var);

Type (*foo) (Type *,
	     Type (*)[x],
	     Type (*var)[x],
	     // An incorrect one that gets "var" recorded as a type.
	     Type (var*)[x],
	     Type &);

Type2 var;
Type var;
Type (*var);			// Currently treated as function call.
Type (*var)[3];
Type var[3 * peq];
Type (var);			// Currently treated as function call.
Type (var)();
::Type var;

unsigned foo bar;
long long x;
long double y;
int x y;			// Invalid
int int y;			// Invalid

// This should be last to check a certain case.
#define low_assign_multiset_index(TO, NODE) do {			\
    struct svalue *_ms_index_to2_ = (TO);				\
  } while (0)

             reply	other threads:[~2016-06-17 15:02 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-17 15:02 Alan Mackenzie [this message]
2016-06-17 17:15 ` bug#23785: Emacs 25: "Undo" overdoes things Eli Zaretskii
2016-06-17 17:45   ` Alan Mackenzie
2016-06-17 20:07     ` Eli Zaretskii
2016-06-17 21:47       ` Phillip Lord
2016-06-18  4:46         ` Stefan Monnier
2016-06-18  7:54         ` Eli Zaretskii
2016-06-18 18:42           ` Stefan Monnier
2016-06-18 19:02             ` Eli Zaretskii
2016-06-18 19:52               ` Stefan Monnier
2016-06-19 22:45                 ` bug#23785: Emacs 25: 'Undo' " Phillip Lord
2016-06-20  0:59                   ` Stefan Monnier
2016-06-20 12:47                     ` Phillip Lord
2016-06-20 14:04                       ` Stefan Monnier
2016-06-20 15:03                   ` Phillip Lord
2016-06-20 15:34                     ` Eli Zaretskii
2016-06-20 17:12                       ` Phillip Lord
2016-06-21 13:17                         ` Eli Zaretskii
2016-06-21 14:30                           ` Phillip Lord
2016-06-21 21:25                         ` Stefan Monnier
2016-06-21 22:08                           ` Phillip Lord
2020-09-04 14:03                             ` Lars Ingebrigtsen
2020-09-05 13:15                               ` Alan Mackenzie
2016-06-21 13:18                     ` Eli Zaretskii
2016-06-21 14:29                       ` Phillip Lord
2016-06-21 16:13                         ` Eli Zaretskii
2016-06-17 21:23     ` bug#23785: Emacs 25: "Undo" " Phillip Lord
2016-06-18 17:41       ` Alan Mackenzie
2016-06-17 21:49     ` Óscar Fuentes
2016-06-20 12:33       ` Phillip Lord

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160617150245.GB3316@acm.fritz.box \
    --to=acm@muc.de \
    --cc=23785@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).