aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard M. Stallman2002-07-29 01:51:09 +0000
committerRichard M. Stallman2002-07-29 01:51:09 +0000
commit3795fe529dbf2f8f7abd37c03aef3fad61a0c2af (patch)
tree2af2d5d5cc546955e5ff57840caea209d75888d1
parente734f5845734b058b400f0dc4f81eba2bfe56673 (diff)
downloademacs-3795fe529dbf2f8f7abd37c03aef3fad61a0c2af.tar.gz
emacs-3795fe529dbf2f8f7abd37c03aef3fad61a0c2af.zip
(edebug-debugger): If inside redisplay, just return.
-rw-r--r--lisp/emacs-lisp/edebug.el75
1 files changed, 39 insertions, 36 deletions
diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el
index 66e40ea3b0a..420b3c9093d 100644
--- a/lisp/emacs-lisp/edebug.el
+++ b/lisp/emacs-lisp/edebug.el
@@ -2423,45 +2423,48 @@ MSG is printed after `::::} '."
2423 2423
2424 2424
2425(defun edebug-debugger (edebug-offset-index edebug-arg-mode edebug-value) 2425(defun edebug-debugger (edebug-offset-index edebug-arg-mode edebug-value)
2426 ;; Check breakpoints and pending input. 2426 (if inhibit-redisplay
2427 ;; If edebug display should be updated, call edebug-display. 2427 ;; Don't really try to enter edebug within an eval from redisplay.
2428 ;; Return edebug-value. 2428 edebug-value
2429 (let* (;; This needs to be here since breakpoints may be changed. 2429 ;; Check breakpoints and pending input.
2430 (edebug-breakpoints (car (cdr edebug-data))) ; list of breakpoints 2430 ;; If edebug display should be updated, call edebug-display.
2431 (edebug-break-data (assq edebug-offset-index edebug-breakpoints)) 2431 ;; Return edebug-value.
2432 (edebug-break-condition (car (cdr edebug-break-data))) 2432 (let* ( ;; This needs to be here since breakpoints may be changed.
2433 (edebug-global-break 2433 (edebug-breakpoints (car (cdr edebug-data))) ; list of breakpoints
2434 (if edebug-global-break-condition 2434 (edebug-break-data (assq edebug-offset-index edebug-breakpoints))
2435 (condition-case nil 2435 (edebug-break-condition (car (cdr edebug-break-data)))
2436 (setq edebug-global-break-result 2436 (edebug-global-break
2437 (eval edebug-global-break-condition)) 2437 (if edebug-global-break-condition
2438 (error nil)))) 2438 (condition-case nil
2439 (edebug-break)) 2439 (setq edebug-global-break-result
2440 (eval edebug-global-break-condition))
2441 (error nil))))
2442 (edebug-break))
2440 2443
2441;;; (edebug-trace "exp: %s" edebug-value) 2444;;; (edebug-trace "exp: %s" edebug-value)
2442 ;; Test whether we should break. 2445 ;; Test whether we should break.
2443 (setq edebug-break 2446 (setq edebug-break
2444 (or edebug-global-break 2447 (or edebug-global-break
2445 (and edebug-break-data 2448 (and edebug-break-data
2446 (or (not edebug-break-condition) 2449 (or (not edebug-break-condition)
2447 (setq edebug-break-result 2450 (setq edebug-break-result
2448 (eval edebug-break-condition)))))) 2451 (eval edebug-break-condition))))))
2449 (if (and edebug-break 2452 (if (and edebug-break
2450 (nth 2 edebug-break-data)) ; is it temporary? 2453 (nth 2 edebug-break-data)) ; is it temporary?
2451 ;; Delete the breakpoint. 2454 ;; Delete the breakpoint.
2452 (setcdr edebug-data 2455 (setcdr edebug-data
2453 (cons (delq edebug-break-data edebug-breakpoints) 2456 (cons (delq edebug-break-data edebug-breakpoints)
2454 (cdr (cdr edebug-data))))) 2457 (cdr (cdr edebug-data)))))
2455 2458
2456 ;; Display if mode is not go, continue, or Continue-fast 2459 ;; Display if mode is not go, continue, or Continue-fast
2457 ;; or break, or input is pending, 2460 ;; or break, or input is pending,
2458 (if (or (not (memq edebug-execution-mode '(go continue Continue-fast))) 2461 (if (or (not (memq edebug-execution-mode '(go continue Continue-fast)))
2459 edebug-break 2462 edebug-break
2460 (edebug-input-pending-p)) 2463 (edebug-input-pending-p))
2461 (edebug-display)) ; <--------------- display 2464 (edebug-display)) ; <--------------- display
2462 2465
2463 edebug-value 2466 edebug-value
2464 )) 2467 )))
2465 2468
2466 2469
2467;; window-start now stored with each function. 2470;; window-start now stored with each function.