]> git.eshelyaron.com Git - emacs.git/commitdiff
When looking for the end of a declarator, prevent macros fouling up the search
authorAlan Mackenzie <acm@muc.de>
Tue, 22 Aug 2017 17:04:34 +0000 (17:04 +0000)
committerAlan Mackenzie <acm@muc.de>
Tue, 22 Aug 2017 17:04:34 +0000 (17:04 +0000)
The practical implication of this bug was a random jit-lock chunk remaining
entirely unfontified.

* lisp/progmodes/cc-mode (c-fl-decl-end): If point starts inside a macro,
restrict two forward searches to the end of that macro.

lisp/progmodes/cc-mode.el

index 0bf89b9a36a5776a25b41f0850ee539a9c386f55..48a6619bd1eb42d6531a0c40929f0e5bc5b99418 100644 (file)
@@ -1549,10 +1549,13 @@ Note that this is a strict tail, so won't match, e.g. \"0x....\".")
     (c-backward-syntactic-ws)
     (when (setq pos1 (c-on-identifier))
       (goto-char pos1)
-      (when (and (c-forward-declarator)
-                (eq (c-forward-token-2) 0))
-       (c-backward-syntactic-ws)
-       (point)))))
+      (let ((lim (save-excursion
+                  (and (c-beginning-of-macro)
+                       (progn (c-end-of-macro) (point))))))
+       (when (and (c-forward-declarator lim)
+                  (eq (c-forward-token-2 1 nil lim) 0))
+         (c-backward-syntactic-ws)
+         (point))))))
 
 (defun c-change-expand-fl-region (_beg _end _old-len)
   ;; Expand the region (c-new-BEG c-new-END) to an after-change font-lock