bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


From: Konstantin Kharlamov
Subject: bug#29959: cc-mode: wrong indentation in absence of semicolon
Date: Thu, 18 Jan 2018 22:08:04 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2

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

[ .... ]






reply via email to

[Prev in Thread] Current Thread [Next in Thread]