CC Mode: c-update-brace-stack: After struct foo *, do not expect a brace.

This fixes bug #52796.

* lisp/progmodes/cc-engine.el (c-update-brace-stack): Handle a "*" like a
semicolon, cancelling the expectation of a brace.

* lisp/progmodes/cc-langs.el (c-brace-stack-thing-key): Add a "*" into the
sets of significant characters.
This commit is contained in:
Alan Mackenzie 2021-12-29 19:05:11 +00:00
parent f11779f01b
commit 06545bc0cc
2 changed files with 3 additions and 3 deletions

View file

@ -6135,7 +6135,7 @@ comment at the start of cc-engine.el for more info."
(setq s (cons -1 (cdr s))))
((and (equal match ",")
(eq (car s) -1))) ; at "," in "class foo : bar, ..."
((member match '(";" "," ")"))
((member match '(";" "*" "," "("))
(when (and s (cdr s) (<= (car s) 0))
(setq s (cdr s))))
((c-keyword-member kwd-sym 'c-flat-decl-block-kwds)

View file

@ -3180,8 +3180,8 @@ Note that Java specific rules are currently applied to tell this from
(append
(c-lang-const c-flat-decl-block-kwds)
(if (c-lang-const c-recognize-<>-arglists)
'("{" "}" ";" "," ")" ":" "<")
'("{" "}" ";" "," ")" ":")))))
'("{" "}" ";" "*" "," ")" ":" "<")
'("{" "}" ";" "*" "," ")" ":")))))
(c-lang-defvar c-brace-stack-thing-key (c-lang-const c-brace-stack-thing-key))
(c-lang-defconst c-brace-stack-no-semi-key