]> git.eshelyaron.com Git - emacs.git/commitdiff
c-renarrow-state-cache: take care when new point is inside old brace pair.
authorAlan Mackenzie <acm@muc.de>
Sun, 19 Jun 2016 11:25:07 +0000 (11:25 +0000)
committerAlan Mackenzie <acm@muc.de>
Sun, 19 Jun 2016 11:25:07 +0000 (11:25 +0000)
Also add display of point-min to the c-parse-state debugging output.

* lisp/progmodes/cc-engine.el (c-renarrow-state-cache): When the new
point is inside an old recorded brace pair, clear the cache.
(c-debug-parse-state): Output the value of point-min.

lisp/progmodes/cc-engine.el

index 32eca3e2bdd29e1c0a5340cd856c6a4615016cfe..011d08031d18b0a1eefbd9b42d81911b3270de82 100644 (file)
@@ -2752,7 +2752,11 @@ comment at the start of cc-engine.el for more info."
        (setq ptr (cdr ptr)))
 
       (when (consp ptr)
-       (if (eq (cdr ptr) c-state-cache)
+       (if (or (eq (cdr ptr) c-state-cache)
+               (and (consp (cadr ptr))
+                    (> (cdr (cadr ptr)) (point-min)))) ; Our new point-min is
+                                                       ; inside a recorded
+                                                       ; brace pair.
            (setq c-state-cache nil
                  c-state-cache-good-pos c-state-min-scan-pos)
          (setcdr ptr nil)
@@ -3603,7 +3607,7 @@ comment at the start of cc-engine.el for more info."
     conses-not-ok))
 
 (defun c-debug-parse-state ()
-  (let ((here (point)) (res1 (c-real-parse-state)) res2)
+  (let ((here (point)) (min-point (point-min)) (res1 (c-real-parse-state)) res2)
     (let ((c-state-cache nil)
          (c-state-cache-good-pos 1)
          (c-state-nonlit-pos-cache nil)
@@ -3630,8 +3634,8 @@ comment at the start of cc-engine.el for more info."
       ;;                          "using cache: %s, from scratch: %s")
       ;;                  here res1 res2)))
       (message (concat "c-parse-state inconsistency at %s: "
-                      "using cache: %s, from scratch: %s")
-              here res1 res2)
+                      "using cache: %s, from scratch: %s.  POINT-MIN: %s")
+              here res1 res2 min-point)
       (message "Old state:")
       (c-replay-parse-state-state))