summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>2002-07-29 01:51:09 +0000
committerRichard M. Stallman <rms@gnu.org>2002-07-29 01:51:09 +0000
commit3795fe529dbf2f8f7abd37c03aef3fad61a0c2af (patch)
tree2af2d5d5cc546955e5ff57840caea209d75888d1 /lisp/emacs-lisp
parente734f5845734b058b400f0dc4f81eba2bfe56673 (diff)
downloademacs-3795fe529dbf2f8f7abd37c03aef3fad61a0c2af.tar.gz
emacs-3795fe529dbf2f8f7abd37c03aef3fad61a0c2af.tar.bz2
emacs-3795fe529dbf2f8f7abd37c03aef3fad61a0c2af.zip
(edebug-debugger): If inside redisplay, just return.
Diffstat (limited to 'lisp/emacs-lisp')
-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 `::::} '."
(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.