CC Mode: stop distinguishing brace blocks from defun blocks by content.

Don't merge to master; this is a quick fix for the emacs-26 branch.  This is
essentially a reversion of the patch from 2017-11-10 which attempted to handle
C99's compound literals.

The bug here was triggered when a defun block contained a declaration ending
in a comma, yet without a semicolon.

* lisp/progmodes/cc-engine.el (c-guess-basic-syntax): At the CASE 9 test,
remove from the `or' form the test of a block's contents.
This commit is contained in:
Alan Mackenzie 2018-01-18 17:54:02 +00:00
parent 779b2ac484
commit 36edb6cb97

View file

@ -12554,11 +12554,7 @@ comment at the start of cc-engine.el for more info."
(save-excursion
(goto-char containing-sexp)
(c-looking-at-special-brace-list)))
(c-inside-bracelist-p containing-sexp paren-state t)
(save-excursion
(goto-char containing-sexp)
(and (eq (char-after) ?{)
(not (c-looking-at-statement-block)))))))
(c-inside-bracelist-p containing-sexp paren-state t))))
(cond
;; CASE 9A: In the middle of a special brace list opener.