GNU bug report logs -
#73182
CC Mode 5.35.2 (C++//l); 'enum' and 'enum class' appear to not get parsed correctly for indentation
Previous Next
Reported by: Arsen Arsenović <arsen <at> aarsen.me>
Date: Wed, 11 Sep 2024 18:53:01 UTC
Severity: normal
Done: Alan Mackenzie <acm <at> muc.de>
Bug is archived. No further changes may be made.
Full log
Message #8 received at 73182 <at> debbugs.gnu.org (full text, mbox):
Hello, Arsen.
Thanks for taking the trouble to raise this bug report last Wednesday.
On Wed, Sep 11, 2024 at 20:52:15 +0200, Arsen Arsenović via CC-Mode-help wrote:
> Package: cc-mode
> <#secure method=pgpmime mode=sign>
> Package: cc-mode
> Hi again,
> CC-mode appears to misindent enum and enum class:
> enum asda
> {
> asd
> };
> enum class asasdas
> {
> asda
> };
Yes.
> These should be indented same as struct per
> https://www.gnu.org/prep/standards/html_node/Formatting.html#index-enum-types_002c-formatting
> (well, enum class isn't mentioned, but I see no reason to act different,
> and GCC appears to do this, so it'd be convenient to keep struct-like
> formatting).
Yes.
> When using C-c C-s, it appears that C and C++ mode do not even recognize
> enum as a class-open, instead doing brace-list-open.
Yes. This bug has come up at least once before, on 19 February 2014, in a
post to bug-cc-mode <at> gnu.org from Xue Fuqiao, Subject: CC Mode 5.32.5
(C/l); The indentation of `enum' of the default `gnu' style is wrong?
After having considered the matter for some time, I answered on 3 March
2014 as follows:
Even though there's a bug, it's been there for a _very_ long time
(since before 1997), such a long time that it would cause chaos if
it were to be fixed. You can see many examples of this wrong enum
indentation all through the Emacs C source, and probably throughout
the entire GNU project.
If this bug were to be fixed, inconsistent (even if correct)
indentation would start creeping into thousands of files. I think
it's best left as it is, unsatisfactory though that be.
At the time, I opened a thread on emacs-devel, asking what other people
thought about the bug (Date: 3 March 2014, Subject: The indentation of
`enum' in the default `gnu' CC Mode style is wrong.) Only one person
responded, Paul Eggert, saying he would be in favour of fixing the bug.
Ten years later, now, I still think that was the right decision to make,
and that the bug should remain unfixed. If you have nothing against it,
I will close this bug as won't fix.
Sorry about this.
> Emacs : GNU Emacs 31.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.42, cairo version 1.18.0)
> of 2024-08-31
> Package: CC Mode 5.35.2 (C++//l)
> Buffer Style: gnu
> c-emacs-features: (pps-extended-state col-0-paren posix-char-classes gen-string-delim gen-comment-delim syntax-properties category-properties 1-bit)
[ .... ]
> --
> Arsen Arsenović
--
Alan Mackenzie (Nuremberg, Germany).
This bug report was last modified 298 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.