GNU bug report logs - #7327
24.0.50; cc-mode: default indentation inconsistent with typedefs

Previous Next

Packages: emacs, cc-mode;

Reported by: Christoph <cschol2112 <at> googlemail.com>

Date: Thu, 4 Nov 2010 01:35:03 UTC

Severity: normal

Tags: wontfix

Found in version 24.0.50

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

Full log


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

From: Alan Mackenzie <acm <at> muc.de>
To: Lars Ingebrigtsen <larsi <at> gnus.org>
Cc: Christoph <cschol2112 <at> googlemail.com>, 7327 <at> debbugs.gnu.org
Subject: Re: bug#7327: 24.0.50; cc-mode: default indentation inconsistent
 with typedefs
Date: Thu, 3 Jun 2021 11:38:37 +0000
Hello, Lars

On Wed, Jun 02, 2021 at 10:48:11 +0200, Lars Ingebrigtsen wrote:
> Christoph <cschol2112 <at> googlemail.com> writes:

> > Start with `emacs -Q'. Start new .c file.

> > Type `typedef enum' then hit `C-j', then `{'.

> > The code is indented like this:

> > typedef enum
> >   {
> >     blabla

> > Then try `typedef struct', `C-j', '{'.

> > The code is indented like this:

> > typedef struct
> > {
> >   blabla

> This behaviour is still present in Emacs 28.

> Alan, is this behaving as designed, or is it a bug?

It's kind of both.  The issue came up on 2014-02-19 in a post from Xue
Fuqiao on the CC Mode list.  This behaviour has been in place since at
least 2000-01-16, and I decided in 2014 that to fix the bug would result
in too much chaos, with "typedef enum"s, lots of them, suddenly becoming
mis-indented.

The root of the problem is that the CC Mode syntactic symbol
brace-list-open is used for both typedef enums (as above) and for the
initialisation of structs with literals.  This economy was a mistake,
with the benefit of hindsight.

So I think I would still rather not fix this bug, since it has at least
two decades' standing.

Sorry!

> -- 
> (domestic pets only, the antidote for overdose, milk.)
>    bloggy blog: http://lars.ingebrigtsen.no

-- 
Alan Mackenzie (Nuremberg, Germany).




This bug report was last modified 3 years and 350 days ago.

Previous Next


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