GNU bug report logs - #11386
C++11 support: C++ mode gets (temporarily) confused by edits to convert "> >" to ">>" in templates

Previous Next

Packages: cc-mode, emacs;

Reported by: James Dennett <jdennett <at> googlers.com>

Date: Mon, 30 Apr 2012 21:18:01 UTC

Severity: normal

Done: Rüdiger Sonderfeld <ruediger <at> c-plusplus.de>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 11386 in the body.
You can then email your comments to 11386 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#11386; Package emacs. (Mon, 30 Apr 2012 21:18:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to James Dennett <jdennett <at> googlers.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Mon, 30 Apr 2012 21:18:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: James Dennett <jdennett <at> googlers.com>
To: bug-gnu-emacs <at> gnu.org
Subject: C++11 support: C++ mode gets (temporarily) confused by edits to
	convert "> >" to ">>" in templates
Date: Mon, 30 Apr 2012 14:05:29 -0700
C++ mode gets confused if C++98 code is updated to omit the (now
unnecessary) space between the closing ">" angle brackets in template
argument lists.

To reproduce:

Start by typing the following (C++98) code:

int foo() {
  vector<vector<string> > temp;
}

So far, so good. Now go back and remove the extra space between the
closing angle brackets.  This will cause the closing } to not match
the opening { (according to emacs), so if you then add another
function below foo, you'll get something like:

int foo() {
  vector<vector<string>> temp;
  return 0;
}

      int bar() {
  }

where the indentation of everything after the function foo() is
broken.  Matching of the angle brackets is also broken.

The buffer can be restored to a good state by erasing and retyping the
inner "<" in the type.  Adding the extra space and removing it will
put the buffer back in a bad state.  Reading the code from file (with
or without the extra space) also leaves the buffer in a good state.




Reply sent to Rüdiger Sonderfeld <ruediger <at> c-plusplus.de>:
You have taken responsibility. (Tue, 18 Nov 2014 17:02:02 GMT) Full text and rfc822 format available.

Notification sent to James Dennett <jdennett <at> googlers.com>:
bug acknowledged by developer. (Tue, 18 Nov 2014 17:02:02 GMT) Full text and rfc822 format available.

Message #10 received at 11386-done <at> debbugs.gnu.org (full text, mbox):

From: Rüdiger Sonderfeld <ruediger <at> c-plusplus.de>
To: 11386-done <at> debbugs.gnu.org
Subject: Re: C++11 support: C++ mode gets (temporarily) confused by edits to
 convert "> >" to ">>" in templates
Date: Tue, 18 Nov 2014 18:00:51 +0100
tags 11386 fixed

Should be fixed in 66bb9533fc77963c495de7f33ec6dc8e4d342a55





Information forwarded to bug-gnu-emacs <at> gnu.org, bug-cc-mode <at> gnu.org:
bug#11386; Package emacs,cc-mode. (Tue, 18 Nov 2014 21:16:02 GMT) Full text and rfc822 format available.

Message #13 received at 11386 <at> debbugs.gnu.org (full text, mbox):

From: Alan Mackenzie <acm <at> muc.de>
To: R?diger Sonderfeld <ruediger <at> c-plusplus.de>
Cc: 11386 <at> debbugs.gnu.org
Subject: Re: bug#11386: C++11 support: C++ mode gets (temporarily) confused
 by	edits to convert "> >" to ">>" in templates
Date: 18 Nov 2014 21:15:19 -0000
Guten Abend, Ruediger.

In article <mailman.13959.1416330148.1147.bug-gnu-emacs <at> gnu.org> you wrote:
> tags 11386 fixed

> Should be fixed in 66bb9533fc77963c495de7f33ec6dc8e4d342a55

OUTCH!!!

Any chance you could be a little more informative with messages like this,
please?

The message as it stands suggests "I have just committed a fix as revision
66bb95...".  The id 66bb95..., like all ids in git, carries no context,
no age, no nothing.

Better would have been to use the "present perfect" tense: "Should have
been fixed in 66bb95...", which would have placed the action of fixing
in the non-immediate past.

Better still would have been to give details of the fix, something like
"Should have been fixed in 66bb953... by Alan Mackenzie in August, title
line "Make ">>" act as double template ender in C++ Mode."".

Possibly the best thing of all would have been to construct an Eric
Raymond style commit identifier, but I haven't got the syntax memorised
yet.

Any of these would have prevented me errupting in uncalled-for panic and
fury.

Thanks!

-- 
Alan Mackenzie (Nuremberg, Germany).







bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 17 Dec 2014 12:24:03 GMT) Full text and rfc822 format available.

This bug report was last modified 10 years and 243 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.