Subject: Re: cc-mode: wrong indentation in absence of semicolon

From: Konstantin Kharlamov <[email-masked]>
Date: Sat, 13 Jan 2018 14:11:31 +0300

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.

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
> 
> Recent messages:
> For information about GNU Emacs and the GNU system, type C-h C-a.
> 
> Configured using:
>   'configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib
>   --localstatedir=/var --mandir=/usr/share/man --with-gameuser=:games
>   --with-sound=alsa --with-xft --with-modules --with-x-toolkit=gtk3
>   --without-gconf --without-gsettings --without-gpm --without-m17n-flt
>   --without-imagemagick 'CFLAGS=-flto=2 -march=native -O3 -pipe
>   -fno-stack-protector -fweb -fno-semantic-interposition
>   -fmerge-all-constants' 'LDFLAGS=-flto=2 -O3 -march=native -fweb
>   -fno-semantic-interposition -fmerge-all-constants -floop-nest-optimize
>   -Wl,--sort-common,-z,relro -fuse-ld=gold''
> 
> Configured features:
> XPM JPEG TIFF GIF PNG RSVG SOUND DBUS NOTIFY ACL GNUTLS LIBXML2 FREETYPE
> LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 MODULES LIBSYSTEMD JSON
> LCMS2
> 
> Important settings:
>    value of $LC_CTYPE: ru_RU.UTF-8
>    value of $LC_TIME: ru_RU.UTF-8
>    value of $LANG: en_US.UTF-8
>    value of $XMODIFIERS: @im=none
>    locale-coding-system: utf-8-unix
> 
> Major mode: Lisp Interaction
> 
> Minor modes in effect:
>    tooltip-mode: t
>    global-eldoc-mode: t
>    eldoc-mode: t
>    electric-indent-mode: t
>    mouse-wheel-mode: t
>    tool-bar-mode: t
>    menu-bar-mode: t
>    file-name-shadow-mode: t
>    global-font-lock-mode: t
>    font-lock-mode: t
>    blink-cursor-mode: t
>    auto-composition-mode: t
>    auto-encryption-mode: t
>    auto-compression-mode: t
>    line-number-mode: t
>    transient-mark-mode: t
> 
> Load-path shadows:
> None found.
> 
> Features:
> (shadow sort mail-extr emacsbug message rmc puny seq byte-opt gv
> bytecomp byte-compile cconv cl-loaddefs cl-lib dired dired-loaddefs
> format-spec rfc822 mml easymenu mml-sec password-cache epa derived epg
> epg-config gnus-util rmail rmail-loaddefs mm-decode mm-bodies mm-encode
> mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047
> rfc2045 ietf-drums mm-util mail-prsvr mail-utils elec-pair time-date
> mule-util cyril-util tooltip eldoc electric uniquify ediff-hook vc-hooks
> lisp-float-type mwheel term/x-win x-win term/common-win x-dnd tool-bar
> dnd fontset image regexp-opt fringe tabulated-list replace newcomment
> text-mode elisp-mode lisp-mode prog-mode register page menu-bar
> rfn-eshadow isearch timer select scroll-bar mouse jit-lock font-lock
> syntax facemenu font-core term/tty-colors frame cl-generic cham georgian
> utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
> japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european
> ethiopic indian cyrillic chinese composite charscript charprop
> case-table epa-hook jka-cmpr-hook help simple abbrev obarray minibuffer
> cl-preloaded nadvice loaddefs button faces cus-face macroexp files
> text-properties overlay sha1 md5 base64 format env code-pages mule
> custom widget hashtable-print-readable backquote dbusbind inotify lcms2
> dynamic-setting font-render-setting move-toolbar gtk x-toolkit x
> multi-tty make-network-process emacs)
> 
> Memory information:
> ((conses 16 95121 11339)
>   (symbols 48 20190 1)
>   (miscs 40 48 119)
>   (strings 32 28421 1060)
>   (string-bytes 1 750170)
>   (vectors 16 14089)
>   (vector-slots 8 494084 10026)
>   (floats 8 49 212)
>   (intervals 56 239 0)
>   (buffers 992 11))