GNU bug report logs - #18072
24.3; cc-mode indentation is broken

Previous Next

Packages: emacs, cc-mode;

Reported by: Juhani Åhman <juhanipm <at> gmail.com>

Date: Mon, 21 Jul 2014 20:52:03 UTC

Severity: normal

Found in version 24.3

Done: Stefan Kangas <stefan <at> marxist.se>

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 18072 in the body.
You can then email your comments to 18072 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#18072; Package emacs. (Mon, 21 Jul 2014 20:52:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Juhani Åhman <juhanipm <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Mon, 21 Jul 2014 20:52:04 GMT) Full text and rfc822 format available.

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

From: Juhani Åhman <juhanipm <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 24.3; cc-mode indentation is broken
Date: Mon, 21 Jul 2014 22:23:58 +0300
[Message part 1 (text/plain, inline)]
This bug report will be sent to the Bug-GNU-Emacs mailing list
and the GNU bug tracker at debbugs.gnu.org. Please check that
the From: line contains a valid email address. After a delay of up
to one day, you should receive an acknowledgment at that address.

Please write in English if possible, as the Emacs maintainers
usually do not have translators for other languages.

Please describe exactly what actions triggered the bug, and
the precise symptoms of the bug. If you can, give a recipe
starting from `emacs -Q':

I can't reliably reproduce the bug.
All I can say that the auto-indentation thingymajig in cc-mode stops 
working at
random every 5-15 minutes or so.
I can get it working again by reloading the file I am editing.
When the indentation is broken, pressing enter will leave no indentation
space for braces and such.

it looks like this

if(1) {
foo();
bar();
zot();
}

when it should look like this

if(1) {
    foo();
    bar();
    zot();
}

I'm pretty sure the indentation was working in some previous version,
about two years ago or so, but not in any of the newer versions of Emacs.


If Emacs crashed, and you have the Emacs process in the gdb debugger,
please include the output from the following gdb commands:
`bt full' and `xbacktrace'.
For information about debugging Emacs, please read the file
/usr/share/emacs/24.3/etc/DEBUG.


In GNU Emacs 24.3.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.12.2)
of 2014-06-11 on var-lib-archbuild-staging-x86_64-jgc
Windowing system distributor `The X.Org Foundation', version 11.0.11502000
Configured using:
`configure '--prefix=/usr' '--sysconfdir=/etc' '--libexecdir=/usr/lib'
'--localstatedir=/var' '--with-x-toolkit=gtk3' '--with-xft'
'CFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong
--param=ssp-buffer-size=4'
'LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro'
'CPPFLAGS=-D_FORTIFY_SOURCE=2''

Important settings:
value of $LC_COLLATE: fi_FI.UTF-8
value of $LC_CTYPE: fi_FI.UTF-8
value of $LC_MESSAGES: en_US.UTF-8
value of $LC_MONETARY: fi_FI.UTF-8
value of $LC_NUMERIC: en_US.UTF-8
value of $LC_TIME: en_DK.UTF-8
value of $LANG: en_US.UTF-8
locale-coding-system: utf-8-unix
default enable-multibyte-characters: t

Major mode: Lisp Interaction

Minor modes in effect:
electric-indent-mode: t
cua-mode: t
global-subword-mode: t
subword-mode: t
show-paren-mode: t
global-hl-line-mode: t
tooltip-mode: t
mouse-wheel-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
column-number-mode: t
line-number-mode: t
transient-mark-mode: t

Recent input:
M-x c o - m
C-a C-k C-g M-x r e o
p e p o
r

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
Loading 
/home/fzzy/.emacs.d/session.10ded9d363000140534073900000004430047...done
Restored session data
Making completion list... [3 times]
Quit
Making completion list... [2 times]

Load-path shadows:
None found.

Features:
(shadow sort gnus-util mail-extr emacsbug message idna format-spec
rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums
mm-util mail-prsvr mail-utils help-mode easymenu electric preview-latex
tex-site auto-loads cc-styles cc-align cc-engine cc-vars cc-defs
bison-mode-autoloads glsl-mode-autoloads go-mode-autoloads package
cua-base subword bs paren edmacro kmacro hl-line delsel server time-date
tooltip ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar
dnd fontset image regexp-opt fringe tabulated-list newcomment lisp-mode
register page menu-bar rfn-eshadow timer select scroll-bar mouse
jit-lock font-lock syntax facemenu font-core frame cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev
minibuffer loaddefs button faces cus-face macroexp files text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote make-network-process dbusbind
dynamic-setting system-font-setting font-render-setting move-toolbar gtk
x-toolkit x multi-tty emacs)
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org, bug-cc-mode <at> gnu.org:
bug#18072; Package emacs,cc-mode. (Sat, 02 Nov 2019 10:53:01 GMT) Full text and rfc822 format available.

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

From: Stefan Kangas <stefan <at> marxist.se>
To: Juhani Åhman <juhanipm <at> gmail.com>
Cc: 18072 <at> debbugs.gnu.org
Subject: Re: 24.3; cc-mode indentation is broken
Date: Sat, 02 Nov 2019 11:52:02 +0100
Juhani Åhman <juhanipm <at> gmail.com> writes:

> I can't reliably reproduce the bug. 
> All I can say that the auto-indentation thingymajig in cc-mode stops working at 
> random every 5-15 minutes or so. 
> I can get it working again by reloading the file I am editing. 
> When the indentation is broken, pressing enter will leave no indentation 
> space for braces and such. 
>
> it looks like this 
>
> if(1) { 
> foo(); 
> bar(); 
> zot(); 
> } 
>
> when it should look like this 
>
> if(1) { 
>     foo(); 
>     bar(); 
>     zot(); 
> } 
>
> I'm pretty sure the indentation was working in some previous version, 
> about two years ago or so, but not in any of the newer versions of Emacs.

I'm not seeing this here.  Can you reproduce this when running under
"emacs -Q"?

Best regards,
Stefan Kangas




Information forwarded to bug-gnu-emacs <at> gnu.org, bug-cc-mode <at> gnu.org:
bug#18072; Package emacs,cc-mode. (Sat, 02 Nov 2019 12:24:01 GMT) Full text and rfc822 format available.

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

From: Alan Mackenzie <acm <at> muc.de>
To: Stefan Kangas <stefan <at> marxist.se>
Cc: 18072 <at> debbugs.gnu.org, Juhani Åhman <juhanipm <at> gmail.com>
Subject: Re: bug#18072: 24.3; cc-mode indentation is broken
Date: 2 Nov 2019 12:23:05 -0000
Hello, Stefan and Juhani.

In article <mailman.384.1572692163.13325.bug-gnu-emacs <at> gnu.org> you wrote:
> Juhani Åhman <juhanipm <at> gmail.com> writes:

>> I can't reliably reproduce the bug. 
>> All I can say that the auto-indentation thingymajig in cc-mode stops working at 
>> random every 5-15 minutes or so. 
>> I can get it working again by reloading the file I am editing. 
>> When the indentation is broken, pressing enter will leave no indentation 
>> space for braces and such. 
>>
>> it looks like this 
>>
>> if(1) { 
>> foo(); 
>> bar(); 
>> zot(); 
>> } 
>>
>> when it should look like this 
>>
>> if(1) { 
>>     foo(); 
>>     bar(); 
>>     zot(); 
>> } 
>>
>> I'm pretty sure the indentation was working in some previous version, 
>> about two years ago or so, but not in any of the newer versions of Emacs.

Is this C++ Mode, by any chance?

> I'm not seeing this here.  Can you reproduce this when running under
> "emacs -Q"?

This looks like having the same cause as bug #37910 "CC Mode 5.33.2
(C++//l); CC-mode inconsistently indents everything as topmost-intro
after a while".

I'm pretty sure it's a defect in a particular CC Mode cache (the "state
cache"), which tracks parentheses, braces, and brackets containing and
near point.  Somehow, it's missing the critical {, believing that
foo();, etc., are at top level.  A C-c C-s on that line would likely
show "topmost-intro".

> Best regards,
> Stefan Kangas

-- 
Alan Mackenzie (Nuremberg, Germany).





Information forwarded to bug-gnu-emacs <at> gnu.org, bug-cc-mode <at> gnu.org:
bug#18072; Package emacs,cc-mode. (Sun, 10 Nov 2019 21:14:01 GMT) Full text and rfc822 format available.

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

From: Stefan Kangas <stefan <at> marxist.se>
To: Alan Mackenzie <acm <at> muc.de>
Cc: 18072 <at> debbugs.gnu.org, Juhani Åhman <juhanipm <at> gmail.com>
Subject: Re: bug#18072: 24.3; cc-mode indentation is broken
Date: Sun, 10 Nov 2019 22:13:00 +0100
Hi Alan,

Alan Mackenzie <acm <at> muc.de> writes:

> Is this C++ Mode, by any chance?

I'm not sure which one to use to reproduce it.  I'm hoping Juhani will
be able to tell us.

> This looks like having the same cause as bug #37910 "CC Mode 5.33.2
> (C++//l); CC-mode inconsistently indents everything as topmost-intro
> after a while".
>
> I'm pretty sure it's a defect in a particular CC Mode cache (the "state
> cache"), which tracks parentheses, braces, and brackets containing and
> near point.  Somehow, it's missing the critical {, believing that
> foo();, etc., are at top level.  A C-c C-s on that line would likely
> show "topmost-intro".

Do you think that these two bugs should be merged?

Best regards,
Stefan Kangas




Information forwarded to bug-gnu-emacs <at> gnu.org, bug-cc-mode <at> gnu.org:
bug#18072; Package emacs,cc-mode. (Sun, 10 Nov 2019 21:43:02 GMT) Full text and rfc822 format available.

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

From: Juhani Ahman <juhani <at> mailbox.org>
To: Stefan Kangas <stefan <at> marxist.se>, Alan Mackenzie <acm <at> muc.de>
Cc: 18072 <at> debbugs.gnu.org, Juhani Åhman <juhanipm <at> gmail.com>
Subject: Re: bug#18072: 24.3; cc-mode indentation is broken
Date: Sun, 10 Nov 2019 23:24:13 +0200 (EET)
Hi

It definitely happened with C++ at least.
Don't remember if it happened with C too.
It's been awhile.

> On 10 November 2019 at 23:13 Stefan Kangas <stefan <at> marxist.se> wrote:
> 
> 
> Hi Alan,
> 
> Alan Mackenzie <acm <at> muc.de> writes:
> 
> > Is this C++ Mode, by any chance?
> 
> I'm not sure which one to use to reproduce it.  I'm hoping Juhani will
> be able to tell us.
> 
> > This looks like having the same cause as bug #37910 "CC Mode 5.33.2
> > (C++//l); CC-mode inconsistently indents everything as topmost-intro
> > after a while".
> >
> > I'm pretty sure it's a defect in a particular CC Mode cache (the "state
> > cache"), which tracks parentheses, braces, and brackets containing and
> > near point.  Somehow, it's missing the critical {, believing that
> > foo();, etc., are at top level.  A C-c C-s on that line would likely
> > show "topmost-intro".
> 
> Do you think that these two bugs should be merged?
> 
> Best regards,
> Stefan Kangas




Information forwarded to bug-gnu-emacs <at> gnu.org, bug-cc-mode <at> gnu.org:
bug#18072; Package emacs,cc-mode. (Mon, 11 Nov 2019 20:44:02 GMT) Full text and rfc822 format available.

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

From: Alan Mackenzie <acm <at> muc.de>
To: Stefan Kangas <stefan <at> marxist.se>
Cc: 18072 <at> debbugs.gnu.org, Juhani Åhman <juhanipm <at> gmail.com>
Subject: Re: bug#18072: 24.3; cc-mode indentation is broken
Date: Mon, 11 Nov 2019 20:43:07 +0000
Hello, Stefan.

On Sun, Nov 10, 2019 at 22:13:00 +0100, Stefan Kangas wrote:
> Hi Alan,

> Alan Mackenzie <acm <at> muc.de> writes:

> > Is this C++ Mode, by any chance?

> I'm not sure which one to use to reproduce it.  I'm hoping Juhani will
> be able to tell us.

> > This looks like having the same cause as bug #37910 "CC Mode 5.33.2
> > (C++//l); CC-mode inconsistently indents everything as topmost-intro
> > after a while".

> > I'm pretty sure it's a defect in a particular CC Mode cache (the "state
> > cache"), which tracks parentheses, braces, and brackets containing and
> > near point.  Somehow, it's missing the critical {, believing that
> > foo();, etc., are at top level.  A C-c C-s on that line would likely
> > show "topmost-intro".

> Do you think that these two bugs should be merged?

I don't think the evidence is strong enough to do this, yet.  Not quite.

In the course of investigating #37910, I discovered a flaw whose effect
would be consistent with what we're seeing in #37910 and the current
bug.  I intend to commit a fix to this flaw, soon.  However, there's
more to #37910 than just that flaw, so #37910 is where I'm spending my
time at the moment.

> Best regards,
> Stefan Kangas

-- 
Alan Mackenzie (Nuremberg, Germany).




Information forwarded to bug-gnu-emacs <at> gnu.org, bug-cc-mode <at> gnu.org:
bug#18072; Package emacs,cc-mode. (Thu, 14 Nov 2019 20:12:02 GMT) Full text and rfc822 format available.

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

From: Alan Mackenzie <acm <at> muc.de>
To: Eric Scrivner <eric.t.scrivner <at> gmail.com>
Cc: 37910-done <at> debbugs.gnu.org, Stefan Kangas <stefan <at> marxist.se>,
 5490 <at> debbugs.gnu.org, 18072 <at> debbugs.gnu.org
Subject: Re: bug#37910: CC Mode 5.33.2 (C++//l); CC-mode inconsistently
 indents everything as topmost-intro after a while
Date: Thu, 14 Nov 2019 20:11:39 +0000
Hello, Eric.

On Wed, Nov 13, 2019 at 16:12:11 -0800, Eric Scrivner wrote:
> Hi Alan,

> Thanks so much for the patch and explanation. I applied it locally and
> while the patch didn't seem to have much effect, setting
> `open-paren-in-column-0-is-defun-start` to `nil` seems to have done the
> trick here without any noticeable impact on performance. It seems as you've
> said that there may be some issues in the heuristic used for performance
> optimization here.

> I will let you know if any other issues surface, but it appears this has
> fixed my issue.

OK, thanks for the test.  I think it is now time to commit the patch and
close the bug.

I am hoping that the patch, already applied to the savannah master
branch, will also have fixed bugs #5910 and #18072.  Their (sporadic)
symptoms were consistent with the glitches fixed by the patch.

-- 
Alan Mackenzie (Nuremberg, Germany).




Information forwarded to bug-gnu-emacs <at> gnu.org, bug-cc-mode <at> gnu.org:
bug#18072; Package emacs,cc-mode. (Fri, 15 Nov 2019 03:13:02 GMT) Full text and rfc822 format available.

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

From: Stefan Kangas <stefan <at> marxist.se>
To: Alan Mackenzie <acm <at> muc.de>
Cc: Juhani Åhman <juhanipm <at> gmail.com>, 18072 <at> debbugs.gnu.org
Subject: Re: bug#18072: bug#37910: CC Mode 5.33.2 (C++//l); CC-mode
 inconsistently indents everything as topmost-intro after a while
Date: Fri, 15 Nov 2019 04:11:54 +0100
Hi Juhani,

Alan Mackenzie <acm <at> muc.de> writes:

> On Wed, Nov 13, 2019 at 16:12:11 -0800, Eric Scrivner wrote:
>> Hi Alan,
>
>> Thanks so much for the patch and explanation. I applied it locally and
>> while the patch didn't seem to have much effect, setting
>> `open-paren-in-column-0-is-defun-start` to `nil` seems to have done the
>> trick here without any noticeable impact on performance. It seems as you've
>> said that there may be some issues in the heuristic used for performance
>> optimization here.
>
>> I will let you know if any other issues surface, but it appears this has
>> fixed my issue.
>
> OK, thanks for the test.  I think it is now time to commit the patch and
> close the bug.
>
> I am hoping that the patch, already applied to the savannah master
> branch, will also have fixed bugs #5910 and #18072.  Their (sporadic)
> symptoms were consistent with the glitches fixed by the patch.

I'm not sure if you're still in a position to reproduce Bug#18072.  If
you are, could you please help test Alan's patch?

Thanks in advance.

Best regards,
Stefan Kangas




Information forwarded to bug-gnu-emacs <at> gnu.org, bug-cc-mode <at> gnu.org:
bug#18072; Package emacs,cc-mode. (Wed, 12 Aug 2020 18:51:02 GMT) Full text and rfc822 format available.

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

From: Stefan Kangas <stefan <at> marxist.se>
To: Alan Mackenzie <acm <at> muc.de>
Cc: 18072 <at> debbugs.gnu.org, Eric Scrivner <eric.t.scrivner <at> gmail.com>,
 5490 <at> debbugs.gnu.org, 37910-done <at> debbugs.gnu.org
Subject: Re: bug#18072: bug#37910: CC Mode 5.33.2 (C++//l); CC-mode
 inconsistently indents everything as topmost-intro after a while
Date: Wed, 12 Aug 2020 11:50:21 -0700
Hi Alan,

Alan Mackenzie <acm <at> muc.de> writes:

> OK, thanks for the test.  I think it is now time to commit the patch and
> close the bug.
>
> I am hoping that the patch, already applied to the savannah master
> branch, will also have fixed bugs #5910 and #18072.  Their (sporadic)
> symptoms were consistent with the glitches fixed by the patch.

Just to follow up on this.

If this was committed, is it time to also close Bug#18072?

Best regards,
Stefan Kangas




Information forwarded to bug-gnu-emacs <at> gnu.org, bug-cc-mode <at> gnu.org:
bug#18072; Package emacs,cc-mode. (Thu, 13 Aug 2020 18:36:01 GMT) Full text and rfc822 format available.

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

From: Alan Mackenzie <acm <at> muc.de>
To: Stefan Kangas <stefan <at> marxist.se>
Cc: 18072 <at> debbugs.gnu.org, Eric Scrivner <eric.t.scrivner <at> gmail.com>,
 5490 <at> debbugs.gnu.org, 37910 <at> debbugs.gnu.org
Subject: Re: bug#18072: bug#37910: CC Mode 5.33.2 (C++//l); CC-mode
 inconsistently indents everything as topmost-intro after a while
Date: Thu, 13 Aug 2020 18:35:06 +0000
Hello, Stefan.

On Wed, Aug 12, 2020 at 11:50:21 -0700, Stefan Kangas wrote:
> Hi Alan,

> Alan Mackenzie <acm <at> muc.de> writes:

> > OK, thanks for the test.  I think it is now time to commit the patch
> > and close the bug.

> > I am hoping that the patch, already applied to the savannah master
> > branch, will also have fixed bugs #5910 and #18072.  Their (sporadic)
> > symptoms were consistent with the glitches fixed by the patch.

> Just to follow up on this.

> If this was committed, is it time to also close Bug#18072?

I had a wee look at it last night, and honestly can't see any good from
keeping it open.  It's almost certainly fixed, but it was a bug without a
reproducible test case.

So, I say close it!

> Best regards,
> Stefan Kangas

-- 
Alan Mackenzie (Nuremberg, Germany).




Reply sent to Stefan Kangas <stefan <at> marxist.se>:
You have taken responsibility. (Thu, 13 Aug 2020 19:51:02 GMT) Full text and rfc822 format available.

Notification sent to Juhani Åhman <juhanipm <at> gmail.com>:
bug acknowledged by developer. (Thu, 13 Aug 2020 19:51:02 GMT) Full text and rfc822 format available.

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

From: Stefan Kangas <stefan <at> marxist.se>
To: Alan Mackenzie <acm <at> muc.de>
Cc: Eric Scrivner <eric.t.scrivner <at> gmail.com>, 18072-done <at> debbugs.gnu.org
Subject: Re: bug#18072: bug#37910: CC Mode 5.33.2 (C++//l); CC-mode
 inconsistently indents everything as topmost-intro after a while
Date: Thu, 13 Aug 2020 12:50:15 -0700
Hi Alan,

Alan Mackenzie <acm <at> muc.de> writes:

> I had a wee look at it last night, and honestly can't see any good from
> keeping it open.  It's almost certainly fixed, but it was a bug without a
> reproducible test case.
>
> So, I say close it!

Excellent, thanks for looking into it.  I'm closing the bug now.

Best regards,
Stefan Kangas




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Fri, 11 Sep 2020 11:24:08 GMT) Full text and rfc822 format available.

This bug report was last modified 4 years and 281 days ago.

Previous Next


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