From: Alan Mackenzie Date: Fri, 16 Sep 2016 10:47:55 +0000 (+0000) Subject: C Mode: Fix mis-fontification of macro invocation as function declaration X-Git-Tag: emacs-26.0.90~1588 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=33f856ba01d13f649cf5c848b322ecb0dbfc02fc;p=emacs.git C Mode: Fix mis-fontification of macro invocation as function declaration 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. --- diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el index a1574b23c5a..9bd78fb821f 100644 --- a/lisp/progmodes/cc-engine.el +++ b/lisp/progmodes/cc-engine.el @@ -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