1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-15 10:30:25 -08:00

c-where-wrt-brace-construct: deal with point following a struct's semicolon.

More precisely, when point is right after the terminating semicolon of a
construct like "struct foo { .... } bar;", the function must return
'at-function-end.

* lisp/progmodes/cc-cmds.el (c-where-wrt-brace-construct): Surround an
existing test for 'at-function-end with an `or' form, the other arm testing
for being after the semicolon above.
This commit is contained in:
Alan Mackenzie 2018-08-27 19:49:25 +00:00
parent 674f276c0a
commit 3266e69dab

View file

@ -1441,21 +1441,23 @@ No indentation or other \"electric\" behavior is performed."
'in-block)
((c-in-function-trailer-p)
'in-trailer)
((and (not least-enclosing)
(consp paren-state)
(consp (car paren-state))
(eq start (cdar paren-state))
(or
(save-excursion
(c-forward-syntactic-ws)
(or (not (looking-at c-symbol-start))
(looking-at c-keywords-regexp)))
(save-excursion
(goto-char (caar paren-state))
(c-beginning-of-decl-1
(and least-enclosing
(c-safe-position least-enclosing paren-state)))
(not (looking-at c-defun-type-name-decl-key)))))
((or (and (eq (char-before) ?\;)
(save-excursion
(backward-char)
(c-in-function-trailer-p)))
(and (not least-enclosing)
(consp paren-state)
(consp (car paren-state))
(eq start (cdar paren-state))
(or
(save-excursion
(c-forward-syntactic-ws)
(or (not (looking-at c-symbol-start))
(looking-at c-keywords-regexp)))
(save-excursion
(goto-char (caar paren-state))
(c-beginning-of-decl-1)
(not (looking-at c-defun-type-name-decl-key))))))
'at-function-end)
(t
;; Find the start of the current declaration. NOTE: If we're in the