GNU bug report logs - #29959
cc-mode: wrong indentation in absence of semicolon

Previous Next

Packages: cc-mode, emacs;

Reported by: Konstantin Kharlamov <hi-angel <at> yandex.ru>

Date: Wed, 3 Jan 2018 06:03:02 UTC

Severity: minor

Tags: fixed

Done: Noam Postavsky <npostavs <at> users.sourceforge.net>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Konstantin Kharlamov <hi-angel <at> yandex.ru>
To: Alan Mackenzie <acm <at> muc.de>
Cc: 29959 <at> debbugs.gnu.org
Subject: bug#29959: cc-mode: wrong indentation in absence of semicolon
Date: Thu, 18 Jan 2018 22:08:04 +0300
Cool, thanks, I applied it locally, works for me!

On 18.01.2018 21:41, Alan Mackenzie wrote:
> Hello again, Konstantin.
> 
> On Sat, Jan 13, 2018 at 20:37:52 +0000, Alan Mackenzie wrote:
>> On Sat, Jan 13, 2018 at 14:11:31 +0300, Konstantin Kharlamov wrote:
>>> Just tested with current git, the problem is still present.
> 
>>> I am almost sure this is a regression, I don't remember having that
>>> problem before. The real-world consequences are just too annoying for it
>>> to go unnoticed — basically, every time I'm typing variables indentation
>>> just doesn't work. And I also seem to remember a few irrelevant
>>> situations where I was typing conditions with the like results.
> 
>> The problem originates in a new feature, C99 compound literals, which was
>> committed on 2017-11-10.  This detects brace blocks (meaning something
>> like the initialisation of a struct) in the middle of executable code,
>> but it is clear the test for such a brace block isn't rigorous enough,
>> since even function blocks are being mistaken for them.
> 
> The new feature, C99 compound literals, has been removed from the
> emacs-26 branch, so as to avoid delaying the relase process for that
> branch.  The commit has hash 36edb6cb97ce3d53543c87643077d270bb5bdfd1,
> and it should apply without problems to the master branch.
> 
> It is to be hoped that a more elaborate and more correct solution will
> be found soon for the master branch.
> 
>>> On 03.01.2018 09:02, Konstantin Kharlamov wrote:
>>>> # Steps to reproduce:
>>>> 1. Open emacs -Q test.c
>>>> 2. Write the following:
> 
>>>> int main() {
>>>>       int a,
>>>> }
> 
>>>> 3. put the caret after the comma symbol, and press enter, e.g. to
>>>> continue writing variables on the new line.
> 
>>>> # Expected:
>>>> the new line alignment stands out with regard to the prev. line.
> 
>>>> # Actual:
>>>> the new line aligned to the beginning of the prev. line.
> 
>>>> # Workarounds:
>>>> Typing the following text:
> 
>>>> int main() {
>>>>       int a,;
>>>> }
> 
>>>> …then pressing enter right after the comma works as expected.
> 
>>>> ------------
> 
>>>> In GNU Emacs 27.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.22.26)
>>>>    of 2017-12-15 built on constantine-N61Ja
>>>> Repository revision: 6c301afa70f6eac32ad1ce92412ea3cf6fcdeeca
>>>> Windowing system distributor 'The X.Org Foundation', version 11.0.11906000
>>>> System Description: Arch Linux
> 
>> [ .... ]
> 




This bug report was last modified 7 years and 109 days ago.

Previous Next


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