CC Mode: Fix calculation of c-parse-state when there're macros with braces
This fixes bug #46951. * lisp/progmodes/cc-engine.el (c-append-lower-brace-pair-to-state-cache): Ensure the starting point for backward scanning is not within a macro which doesn't contain HERE.
This commit is contained in:
parent
b8e3f338a6
commit
1d43c1854a
1 changed files with 8 additions and 6 deletions
|
@ -3793,12 +3793,14 @@ mhtml-mode."
|
|||
(point)))
|
||||
(bra ; Position of "{".
|
||||
;; Don't start scanning in the middle of a CPP construct unless
|
||||
;; it contains HERE - these constructs, in Emacs, are "commented
|
||||
;; out" with category properties.
|
||||
(if (eq (c-get-char-property macro-start-or-from 'category)
|
||||
'c-cpp-delimiter)
|
||||
macro-start-or-from
|
||||
from))
|
||||
;; it contains HERE.
|
||||
(if (and (not (eq macro-start-or-from from))
|
||||
(< macro-start-or-from here) ; Might not be needed.
|
||||
(progn (goto-char macro-start-or-from)
|
||||
(c-end-of-macro)
|
||||
(>= (point) here)))
|
||||
from
|
||||
macro-start-or-from))
|
||||
ce) ; Position of "}"
|
||||
(or upper-lim (setq upper-lim from))
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue