1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-12 16:23:57 +00:00

Fix spurious fontification of "for (; a * b;)" in CC Mode.

* lisp/progmodes/cc-fonts.el (c-font-lock-declarations): Check for being
inside the parens of a for statement and after a semicolon near the beginning
of the lambda form.
This commit is contained in:
Alan Mackenzie 2016-04-25 17:57:24 +00:00
parent 86d083438d
commit 89d1776b81

View File

@ -1205,8 +1205,20 @@ casts and declarations are fontified. Used on level 2 and higher."
'font-lock-keyword-face)
(looking-at c-not-decl-init-keywords))
(and c-macro-with-semi-re
(looking-at c-macro-with-semi-re))) ; 2008-11-04
;; Don't do anything more if we're looking at a keyword that
(looking-at c-macro-with-semi-re)) ; 2008-11-04
(save-excursion ; A construct after a ; in a `for' statement
; can't be a declaration.
(and (c-go-up-list-backward)
(eq (char-after) ?\()
(progn (c-backward-syntactic-ws)
(c-simple-skip-symbol-backward))
(looking-at c-paren-stmt-key)
(progn (goto-char match-pos)
(while (and (eq (char-before) ?\))
(c-go-list-backward))
(c-backward-syntactic-ws))
(eq (char-before) ?\;)))))
;; Don't do anything more if we're looking at something that
;; can't start a declaration.
t