aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlan Mackenzie2016-04-25 17:57:24 +0000
committerAlan Mackenzie2016-04-25 17:57:24 +0000
commit89d1776b81ab552192ee41f13ce84ff86bda4556 (patch)
tree6379dcc27fd3543a5f513794fe920b41beaa6b4f
parent86d083438dba60dc00e9e96414bf7e832720c05a (diff)
downloademacs-89d1776b81ab552192ee41f13ce84ff86bda4556.tar.gz
emacs-89d1776b81ab552192ee41f13ce84ff86bda4556.zip
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.
-rw-r--r--lisp/progmodes/cc-fonts.el16
1 files changed, 14 insertions, 2 deletions
diff --git a/lisp/progmodes/cc-fonts.el b/lisp/progmodes/cc-fonts.el
index e171b20f328..6c348514915 100644
--- a/lisp/progmodes/cc-fonts.el
+++ b/lisp/progmodes/cc-fonts.el
@@ -1205,8 +1205,20 @@ casts and declarations are fontified. Used on level 2 and higher."
1205 'font-lock-keyword-face) 1205 'font-lock-keyword-face)
1206 (looking-at c-not-decl-init-keywords)) 1206 (looking-at c-not-decl-init-keywords))
1207 (and c-macro-with-semi-re 1207 (and c-macro-with-semi-re
1208 (looking-at c-macro-with-semi-re))) ; 2008-11-04 1208 (looking-at c-macro-with-semi-re)) ; 2008-11-04
1209 ;; Don't do anything more if we're looking at a keyword that 1209 (save-excursion ; A construct after a ; in a `for' statement
1210 ; can't be a declaration.
1211 (and (c-go-up-list-backward)
1212 (eq (char-after) ?\()
1213 (progn (c-backward-syntactic-ws)
1214 (c-simple-skip-symbol-backward))
1215 (looking-at c-paren-stmt-key)
1216 (progn (goto-char match-pos)
1217 (while (and (eq (char-before) ?\))
1218 (c-go-list-backward))
1219 (c-backward-syntactic-ws))
1220 (eq (char-before) ?\;)))))
1221 ;; Don't do anything more if we're looking at something that
1210 ;; can't start a declaration. 1222 ;; can't start a declaration.
1211 t 1223 t
1212 1224