Mercurial > emacs
changeset 46716:f9f0026b4c12
(edebug-debugger): If inside redisplay, just return.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Mon, 29 Jul 2002 01:51:09 +0000 |
parents | 1320a274ce28 |
children | 505956923015 |
files | lisp/emacs-lisp/edebug.el |
diffstat | 1 files changed, 39 insertions(+), 36 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/emacs-lisp/edebug.el Mon Jul 29 01:49:45 2002 +0000 +++ b/lisp/emacs-lisp/edebug.el Mon Jul 29 01:51:09 2002 +0000 @@ -2423,45 +2423,48 @@ (defun edebug-debugger (edebug-offset-index edebug-arg-mode edebug-value) - ;; Check breakpoints and pending input. - ;; If edebug display should be updated, call edebug-display. - ;; Return edebug-value. - (let* (;; This needs to be here since breakpoints may be changed. - (edebug-breakpoints (car (cdr edebug-data))) ; list of breakpoints - (edebug-break-data (assq edebug-offset-index edebug-breakpoints)) - (edebug-break-condition (car (cdr edebug-break-data))) - (edebug-global-break - (if edebug-global-break-condition - (condition-case nil - (setq edebug-global-break-result - (eval edebug-global-break-condition)) - (error nil)))) - (edebug-break)) + (if inhibit-redisplay + ;; Don't really try to enter edebug within an eval from redisplay. + edebug-value + ;; Check breakpoints and pending input. + ;; If edebug display should be updated, call edebug-display. + ;; Return edebug-value. + (let* ( ;; This needs to be here since breakpoints may be changed. + (edebug-breakpoints (car (cdr edebug-data))) ; list of breakpoints + (edebug-break-data (assq edebug-offset-index edebug-breakpoints)) + (edebug-break-condition (car (cdr edebug-break-data))) + (edebug-global-break + (if edebug-global-break-condition + (condition-case nil + (setq edebug-global-break-result + (eval edebug-global-break-condition)) + (error nil)))) + (edebug-break)) ;;; (edebug-trace "exp: %s" edebug-value) - ;; Test whether we should break. - (setq edebug-break - (or edebug-global-break - (and edebug-break-data - (or (not edebug-break-condition) - (setq edebug-break-result - (eval edebug-break-condition)))))) - (if (and edebug-break - (nth 2 edebug-break-data)) ; is it temporary? - ;; Delete the breakpoint. - (setcdr edebug-data - (cons (delq edebug-break-data edebug-breakpoints) - (cdr (cdr edebug-data))))) - - ;; Display if mode is not go, continue, or Continue-fast - ;; or break, or input is pending, - (if (or (not (memq edebug-execution-mode '(go continue Continue-fast))) - edebug-break - (edebug-input-pending-p)) - (edebug-display)) ; <--------------- display + ;; Test whether we should break. + (setq edebug-break + (or edebug-global-break + (and edebug-break-data + (or (not edebug-break-condition) + (setq edebug-break-result + (eval edebug-break-condition)))))) + (if (and edebug-break + (nth 2 edebug-break-data)) ; is it temporary? + ;; Delete the breakpoint. + (setcdr edebug-data + (cons (delq edebug-break-data edebug-breakpoints) + (cdr (cdr edebug-data))))) + + ;; Display if mode is not go, continue, or Continue-fast + ;; or break, or input is pending, + (if (or (not (memq edebug-execution-mode '(go continue Continue-fast))) + edebug-break + (edebug-input-pending-p)) + (edebug-display)) ; <--------------- display - edebug-value - )) + edebug-value + ))) ;; window-start now stored with each function.