branch: elpa/aidermacs
commit 01f04e0437e45d0ea5c927542e42da0028e4904b
Author: Mingde (Matthew) Zeng <matthew...@posteo.net>
Commit: Mingde (Matthew) Zeng <matthew...@posteo.net>

    Warns user when font-lock position breaks
    
    Addresses #87
    
    Signed-off-by: Mingde (Matthew) Zeng <matthew...@posteo.net>
---
 aidermacs-backend-comint.el | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/aidermacs-backend-comint.el b/aidermacs-backend-comint.el
index ec7cd6bea1..8d0c4e7379 100644
--- a/aidermacs-backend-comint.el
+++ b/aidermacs-backend-comint.el
@@ -241,19 +241,21 @@ _OUTPUT is the text to be processed."
 
       ;; Apply the faces to the buffer
       (remove-overlays aidermacs--syntax-block-start-pos 
aidermacs--syntax-block-end-pos)
-      
+
       (catch 'break
-        (while  (< pos aidermacs--syntax-block-end-pos)
+        (while (< pos aidermacs--syntax-block-end-pos)
           (let* ((next-font-pos (or (next-property-change font-pos fontified) 
(length fontified)))
                  (next-pos (+ aidermacs--syntax-block-start-pos next-font-pos))
                  (face (get-text-property font-pos 'face fontified)))
             (ansi-color-apply-overlay-face pos next-pos face)
+            ;; Detect potential infinite loop - position didn't advance
             (when (eq pos next-pos)
+              (warn "Font-lock position didn't advance at pos %d, breaking out 
of loop to prevent hang" pos)
               (throw 'break nil))
-            
+
             (setq pos next-pos
                   font-pos next-font-pos)))))
-             
+
     ;; If we found the end marker, finalize the block
     (when end-of-block-p
       (when (equal aidermacs--syntax-block-delimiter aidermacs-diff-marker)

Reply via email to