]> git.eshelyaron.com Git - emacs.git/commitdiff
CC Mode: stop extra parens on expression causing false fontification as type
authorAlan Mackenzie <acm@muc.de>
Mon, 10 Dec 2018 14:30:40 +0000 (14:30 +0000)
committerAlan Mackenzie <acm@muc.de>
Mon, 10 Dec 2018 14:30:40 +0000 (14:30 +0000)
* lisp/progmodes/cc-fonts.el (c-get-fontification-context): recognize
arithmetic operator followed by several open parentheses, not just one, as not
being an argument list.

lisp/progmodes/cc-fonts.el

index fa9b8f354ef6195b81db557f6e2601b054637096..39d167f0190645b7ee528c8c8f3fec285824ad1b 100644 (file)
@@ -1279,12 +1279,14 @@ casts and declarations are fontified.  Used on level 2 and higher."
           (c-put-char-property (1- match-pos)
                                'c-type 'c-decl-arg-start)
           (cons 'decl nil))
-         ;; Got an open paren preceded by an arith operator.
+         ;; Got (an) open paren(s) preceded by an arith operator.
          ((and (eq (char-before match-pos) ?\()
                (save-excursion
                  (goto-char match-pos)
-                 (and (zerop (c-backward-token-2 2))
-                      (looking-at c-arithmetic-op-regexp))))
+                 (while
+                     (progn (c-backward-token-2)
+                            (eq (char-after) ?\()))
+                 (looking-at c-arithmetic-op-regexp)))
           (cons nil nil))
          ;; In a C++ member initialization list.
          ((and (eq (char-before match-pos) ?,)