]> git.eshelyaron.com Git - emacs.git/commitdiff
(reveal-post-command): Better error handling and debugging.
authorStefan Monnier <monnier@iro.umontreal.ca>
Mon, 31 Mar 2003 20:56:14 +0000 (20:56 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Mon, 31 Mar 2003 20:56:14 +0000 (20:56 +0000)
lisp/reveal.el

index 245c7a3c4a0437b83a146ac5e63c349698355de8..c30686e4e27841005b57664c2af00f6b2c54c754 100644 (file)
@@ -61,6 +61,8 @@
 
 ;; Actual code
 
+(defvar reveal-backtrace nil)
+
 (defun reveal-post-command ()
   ;; Refresh the spots that might have changed.
   ;; `Refreshing' here means to try and re-hide the corresponding text.
               (setq repeat t)
               (condition-case err
                   (funcall open ol nil)
-                (error (message "!!Reveal-show: %s !!" err))))))))
+                (error (setq reveal-backtrace (backtrace))
+                       (message "!!Reveal-show: %s !!" err)
+                       ;; Let's default to a meaningful behavior to avoid
+                       ;; getting stuck in an infinite loop.
+                       (overlay-put ol 'invisible nil))))))))
      ;; Close old overlays.
      (dolist (ol old-ols)
        (when (and (eq (current-buffer) (overlay-buffer ol))
                                         (get ol 'isearch-open-invisible-temporary)))))
                 (condition-case err
                     (funcall open ol t)
-                  (error (message "!!Reveal-hide: %s !!" err)))
+                  (error (setq reveal-backtrace (backtrace))
+                         (message "!!Reveal-hide: %s !!" err)))
               (overlay-put ol 'invisible inv)))))))
-   (error (message "Reveal: %s" err)))))
+   (error (setq reveal-backtrace (backtrace))
+         (message "Reveal: %s" err)))))
 
 ;;;###autoload
 (define-minor-mode reveal-mode