Subject: bug#5422: syntax highlighting bug

From: Jan Djärv <[email-masked]>
Date: Tue, 4 Oct 2011 07:32:57 +0200

Hello.

3 okt 2011 kl. 22:59 skrev Glenn Morris <[email-masked]>:

> Bartosz Lew wrote:
> 
>> This is just to report on some minor C++ syntax highlighting problem
>> in emacs.
>> 
>> when I write:
>> 
>>    if (a < b->c())  { do this; } else { do that; }
>> 
>> two two things go wrong:
>> 1) parentheses matching doesn't work correctly 
>>    emacs matches the closing bracket of the if condition with the
>> "<" - "smaller > than" sign in the if condition.
>> 
>> 2) the automatic positioning of any code written below gets confused due to 
>> this parentheses matching problem.
>> 
>> I use:
>> 
>> GNU Emacs 23.1.1 (i386-redhat-linux-gnu, GTK+ Version 2.16.6)
>> of 2009-09-29 on x86-7.fedora.phx.redhat.com
> 
> I am unable to reproduce this in any version of Emacs, including 23.1.
> If you still see the problem in the latest release, please send a
> complete example starting from emacs -Q.
> 
> (There seem to have been some fixes in this area, eg
> http://debbugs.gnu.org/cgi/bugreport.cgi?bug=4847 )
> 

This is one of the elusive cc-mode bugs that isn't easy to reproduce. 

AFAIK it depends on some cache in cc-mode getting out of sync. So you are more likely to see it on a large file you have edited in several places. It might even depend on what kind of editing you have done. I think this is a symptom of some underlying bug.

I see this in 23.3 and the trunk at least 2-3 times per day when editing code with a lot of templates. The < and > are mistaken for start/end brace or parentesis.

Save the file, kill the buffer, and reopen the file usually fixes it.

    Jan D.