diff options
author | Alan Mackenzie <acm@muc.de> | 2017-07-27 17:05:53 +0000 |
---|---|---|
committer | Alan Mackenzie <acm@muc.de> | 2017-07-27 17:05:53 +0000 |
commit | 30e6e558701ebc781cdca3b9d61d995004cfef7d (patch) | |
tree | f2f190c4ddc3d5aabbe6fb06962827d1b6fa2bca /lisp/progmodes/cc-fonts.el | |
parent | 82583d4dde465c0d923eec306d0f9c5d671955bc (diff) | |
download | emacs-30e6e558701ebc781cdca3b9d61d995004cfef7d.tar.gz emacs-30e6e558701ebc781cdca3b9d61d995004cfef7d.tar.bz2 emacs-30e6e558701ebc781cdca3b9d61d995004cfef7d.zip |
Fix variables in C++ "for" statement not always being fontified.
The error happened when there was a comma inside template delimiters.
* lisp/progmodes/cc-fonts.el (c-get-fontification-context): In "for"
statements, recognise template delimiters containing "," and "&".
Diffstat (limited to 'lisp/progmodes/cc-fonts.el')
-rw-r--r-- | lisp/progmodes/cc-fonts.el | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/lisp/progmodes/cc-fonts.el b/lisp/progmodes/cc-fonts.el index 66f2575f49f..e8552af8ed8 100644 --- a/lisp/progmodes/cc-fonts.el +++ b/lisp/progmodes/cc-fonts.el @@ -1182,10 +1182,15 @@ casts and declarations are fontified. Used on level 2 and higher." (goto-char match-pos) (backward-char) (c-backward-token-2) - (or (looking-at c-block-stmt-2-key) - (looking-at c-block-stmt-1-2-key) - (looking-at c-typeof-key)))) - (cons nil t)) + (cond + ((looking-at c-paren-stmt-key) + ;; Allow comma separated <> arglists in for statements. + (cons nil nil)) + ((or (looking-at c-block-stmt-2-key) + (looking-at c-block-stmt-1-2-key) + (looking-at c-typeof-key)) + (cons nil t)) + (t nil))))) ;; Near BOB. ((<= match-pos (point-min)) (cons 'arglist t)) |