From: Stefan Monnier Date: Mon, 31 Mar 2003 20:56:14 +0000 (+0000) Subject: (reveal-post-command): Better error handling and debugging. X-Git-Tag: ttn-vms-21-2-B4~10696 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=a604e2b4575b02713b63ff6336d2f55725e0f19f;p=emacs.git (reveal-post-command): Better error handling and debugging. --- 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