bug#55181: CC Mode 5.35.1 (C/*l); c-guess-style not working
Po Lu via CC-Mode-help <[email protected]> Tue, 03 May 2022 12:07:48 +0800
| Newsgroups | gmane.emacs.cc-mode.general |
|---|---|
| Message-ID | <[email protected]> |
(Terribly sorry that your reply got caught in the spam filter.) Alan Mackenzie <[email protected]> writes: > diff -r 04b2d5e1eff8 cc-engine.el > --- a/cc-engine.el Wed Apr 27 18:05:17 2022 +0000 > +++ b/cc-engine.el Fri Apr 29 19:56:29 2022 +0000 > @@ -3431,7 +3431,9 @@ > ;; Return a good pos (in the sense of `c-state-cache-good-pos') at the > ;; lowest[*] position between POS and HERE which is syntactically equivalent > ;; to HERE. This position may be HERE itself. POS is before HERE in the > - ;; buffer. > + ;; buffer. If POS and HERE are both in the same literal, return the start > + ;; of the literal. STATE is the parsing state at POS. > + ;; > ;; [*] We don't actually always determine this exact position, since this > ;; would require a disproportionate amount of work, given that this function > ;; deals only with a corner condition, and POS and HERE are typically on > @@ -3447,7 +3449,7 @@ > (setq pos (point) > state s))) > (if (eq (point) here) ; HERE is in the same literal as POS > - pos > + (nth 8 state) ; A valid good pos cannot be in a literal. > (setq s (parse-partial-sexp pos here (1+ (car state)) nil state nil)) > (cond > ((> (car s) (car state)) ; Moved into a paren between POS and HERE > > [ CC Mode configuration snipped, but appreciated. ] This seems to work, thanks.