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

From: Konstantin Kharlamov <[email-masked]>
Date: Wed, 3 Jan 2018 09:02:19 +0300

# 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))