Subject: bug#24022: 24.5; C indentation failure

From: Alan Mackenzie <[email-masked]>
Date: 21 Jul 2016 19:31:18 -0000

Hello, robgssp.

In article <[email-masked]> you wrote:

> c-mode fails to indent correctly when a #if is followed by a
> comment. Example:

> int main() {
> #if defined(a) // comment
>   if (b) {
>   body();
> }
> #endif
>   }

> Clearly this isn't the correct indentation. A clean run under -Q behaves
> the same way.

Yes.

Thanks for taking the trouble to report this problem, and thanks even
more for cutting the source down to a small, easy to handle test case.

There have been extensive changes to CC Mode since the release of Emacs
24.5, and the problem isn't apparent in more recent versions.  Bisecting
the changes in mercurial suggest that this bug was "solved" by a commit on
2016-05-29.

I've tried to adapt this commit so that it will apply to the Emacs 24.5
sources, but the changes are just too many for this to be practicable.

Would it be OK for me to send you a tarball of the up-to-date CC Mode
sources (~1.34 Mb) so that you could build these on Emacs 24.5 and check
that the error really has been fixed (and not just in the cut down test
case you've sent me)?

> In GNU Emacs 24.5.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.20.6)
>  of 2016-06-04 on juergen
> Windowing system distributor `The X.Org Foundation', version 11.0.11803000
> System Description:     Arch Linux

> 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' CPPFLAGS=-D_FORTIFY_SOURCE=2
>  LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro'

> Important settings:
>   value of $LANG: en_US.UTF-8
>   locale-coding-system: utf-8-unix

> Major mode: C/l

-- 
Alan Mackenzie (Nuremberg, Germany).