aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlan Mackenzie2015-08-20 10:37:24 +0000
committerAlan Mackenzie2015-08-20 10:37:24 +0000
commitd13dc271e52c7d977aee6f32c3d40b8b15b04c6c (patch)
treecec8b7085744d09724d41dce18af0f113930d3da
parentd0079c9324e575107b8a90944c9012dd3842946c (diff)
downloademacs-d13dc271e52c7d977aee6f32c3d40b8b15b04c6c.tar.gz
emacs-d13dc271e52c7d977aee6f32c3d40b8b15b04c6c.zip
Handling of `c-parse-state'. Fix low level bug.
progmodes/cc-engine.el (c-remove-stale-state-cache-backwards): Add "CASE 3.5" to handle `cache-pos' being only slightly before `here'.
-rw-r--r--lisp/progmodes/cc-engine.el12
1 files changed, 8 insertions, 4 deletions
diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el
index f5285a6bcfe..520b7e573bf 100644
--- a/lisp/progmodes/cc-engine.el
+++ b/lisp/progmodes/cc-engine.el
@@ -3135,16 +3135,20 @@ comment at the start of cc-engine.el for more info."
3135 nil)) ; for the cond 3135 nil)) ; for the cond
3136 3136
3137 ((save-restriction 3137 ((save-restriction
3138 (narrow-to-region too-far-back (point-max)) 3138 (narrow-to-region too-far-back (point-max))
3139 (setq ren (c-safe (c-sc-scan-lists pos -1 -1)))) 3139 (setq ren (c-safe (c-sc-scan-lists pos -1 -1))))
3140
3141 ;; CASE 3: After a }/)/] before `here''s BOL. 3140 ;; CASE 3: After a }/)/] before `here''s BOL.
3142 (list (1+ ren) (and dropped-cons pos) nil)) ; Return value 3141 (list (1+ ren) (and dropped-cons pos) nil)) ; Return value
3143 3142
3143 ((progn (setq good-pos (c-state-lit-beg (c-point 'bopl here-bol)))
3144 (>= cache-pos good-pos))
3145 ;; CASE 3.5: Just after an existing entry in `c-state-cache' on `here''s
3146 ;; line or the previous line.
3147 (list cache-pos nil nil))
3148
3144 (t 3149 (t
3145 ;; CASE 4; Best of a bad job: BOL before `here-bol', or beginning of 3150 ;; CASE 4; Best of a bad job: BOL before `here-bol', or beginning of
3146 ;; literal containing it. 3151 ;; literal containing it.
3147 (setq good-pos (c-state-lit-beg (c-point 'bopl here-bol)))
3148 (list good-pos (and dropped-cons good-pos) nil))))) 3152 (list good-pos (and dropped-cons good-pos) nil)))))
3149 3153
3150 3154