]> git.eshelyaron.com Git - emacs.git/commitdiff
C Mode: Fix mis-fontification of macro invocation as function declaration
authorAlan Mackenzie <acm@muc.de>
Fri, 16 Sep 2016 10:47:55 +0000 (10:47 +0000)
committerAlan Mackenzie <acm@muc.de>
Fri, 16 Sep 2016 10:47:55 +0000 (10:47 +0000)
This happened with a macro invocation which was followed by a statement block
in braces.

* lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): CASE 11: distinguish
between contexts nil and top, being less permissive in the former case.
(c-just-after-func-arglist-p): call c-forward-decl-or-cast-1 with context top.

lisp/progmodes/cc-engine.el

index a1574b23c5ac288f3c3744eebccfa2db42797de5..9bd78fb821f063acf6c1f5b1e79423c7c0110ba6 100644 (file)
@@ -8631,8 +8631,10 @@ comment at the start of cc-engine.el for more info."
 
         ;; CASE 11
         (when (and got-identifier
-                   (memq context '(nil top))
                    (looking-at c-after-suffixed-type-decl-key)
+                   (or (eq context 'top)
+                       (and eq context nil
+                            (match-beginning 1)))
                    (if (and got-parens
                             (not got-prefix)
                             (not got-suffix)
@@ -9310,7 +9312,7 @@ comment at the start of cc-engine.el for more info."
               (c-forward-objc-directive)))
 
      (setq id-start
-          (car-safe (c-forward-decl-or-cast-1 (c-point 'bosws) nil nil)))
+          (car-safe (c-forward-decl-or-cast-1 (c-point 'bosws) 'top nil)))
      (< id-start beg)
 
      ;; There should not be a '=' or ',' between beg and the