From a604e2b4575b02713b63ff6336d2f55725e0f19f Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Mon, 31 Mar 2003 20:56:14 +0000 Subject: [PATCH] (reveal-post-command): Better error handling and debugging. --- lisp/reveal.el | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/lisp/reveal.el b/lisp/reveal.el index 245c7a3c4a0..c30686e4e27 100644 --- a/lisp/reveal.el +++ b/lisp/reveal.el @@ -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. @@ -107,7 +109,11 @@ (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)) @@ -128,9 +134,11 @@ (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 -- 2.39.2