]> git.eshelyaron.com Git - emacs.git/commitdiff
c-where-wrt-brace-construct: deal with point following a struct's semicolon.
authorAlan Mackenzie <acm@muc.de>
Mon, 27 Aug 2018 19:49:25 +0000 (19:49 +0000)
committerAlan Mackenzie <acm@muc.de>
Mon, 27 Aug 2018 19:49:25 +0000 (19:49 +0000)
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.

lisp/progmodes/cc-cmds.el

index 478ccf18029a99c62dfab0cc56abae48d1951ea4..4f256e1008fb1d9e57165f8a76896ac628ccc72f 100644 (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