bug#55181: CC Mode 5.35.1 (C/*l); c-guess-style not working
Alan Mackenzie <[email protected]> Sun, 8 May 2022 13:21:53 +0000
| Newsgroups | gmane.emacs.cc-mode.general |
|---|---|
| Message-ID | <YnfD8dhxQtlFQReS@ACM> |
Hello, Po On Tue, May 03, 2022 at 12:07:48 +0800, Po Lu via CC-Mode-help wrote: > (Terribly sorry that your reply got caught in the spam filter.) No problems, it happens sometimes. > 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. Thanks for the testing. I've now committed this patch, and I'm closing the bug with this post. -- Alan Mackenzie (Nuremberg, Germany).