diff options
| author | Richard M. Stallman | 2002-07-29 01:51:09 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 2002-07-29 01:51:09 +0000 |
| commit | 3795fe529dbf2f8f7abd37c03aef3fad61a0c2af (patch) | |
| tree | 2af2d5d5cc546955e5ff57840caea209d75888d1 | |
| parent | e734f5845734b058b400f0dc4f81eba2bfe56673 (diff) | |
| download | emacs-3795fe529dbf2f8f7abd37c03aef3fad61a0c2af.tar.gz emacs-3795fe529dbf2f8f7abd37c03aef3fad61a0c2af.zip | |
(edebug-debugger): If inside redisplay, just return.
| -rw-r--r-- | lisp/emacs-lisp/edebug.el | 75 |
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. |