Index: emacs/lisp/emacs-lisp/debug.el
diff -c emacs/lisp/emacs-lisp/debug.el:1.82 emacs/lisp/emacs-lisp/debug.el:1.83
*** emacs/lisp/emacs-lisp/debug.el:1.82 Wed Jun 8 19:35:54 2005
--- emacs/lisp/emacs-lisp/debug.el Thu Jun 9 03:09:30 2005
***************
*** 88,93 ****
--- 88,95 ----
(defvar debugger-outer-standard-output)
(defvar debugger-outer-inhibit-redisplay)
(defvar debugger-outer-cursor-in-echo-area)
+ (defvar debugger-will-be-back nil
+ "Non-nil if we expect to get back in the debugger soon.")
(defvar inhibit-debug-on-entry nil
"Non-nil means that debug-on-entry is disabled.")
***************
*** 123,128 ****
--- 125,131 ----
(get-buffer-create "*Backtrace*")))
(debugger-old-buffer (current-buffer))
(debugger-step-after-exit nil)
+ (debugger-will-be-back nil)
;; Don't keep reading from an executing kbd macro!
(executing-kbd-macro nil)
;; Save the outer values of these vars for the `e' command
***************
*** 218,230 ****
(fundamental-mode)
(with-selected-window (get-buffer-window debugger-buffer 0)
(when (and (window-dedicated-p (selected-window))
! (not debugger-step-after-exit))
;; If the window is not dedicated, burying the buffer
;; will mean that the frame created for it is left
;; around showing some random buffer, and next time we
;; pop to the debugger buffer we'll create yet
;; another frame.
! ;; If debugger-step-after-exit is non-nil, the frame
;; would need to be de-iconified anyway immediately
;; after when we re-enter the debugger, so iconifying it
;; here would cause flashing.
--- 221,233 ----
(fundamental-mode)
(with-selected-window (get-buffer-window debugger-buffer 0)
(when (and (window-dedicated-p (selected-window))
! (not debugger-will-be-back))
;; If the window is not dedicated, burying the buffer
;; will mean that the frame created for it is left
;; around showing some random buffer, and next time we
;; pop to the debugger buffer we'll create yet
;; another frame.
! ;; If debugger-will-be-back is non-nil, the frame
;; would need to be de-iconified anyway immediately
;; after when we re-enter the debugger, so iconifying it
;; here would cause flashing.
***************
*** 320,326 ****
(save-excursion
(set-buffer (or buffer (current-buffer)))
(setq buffer (current-buffer))
! (let ((buffer-read-only nil)
(old-end (point-min)) (new-end (point-min)))
;; If we saved an old backtrace, find the common part
;; between the new and the old.
--- 323,329 ----
(save-excursion
(set-buffer (or buffer (current-buffer)))
(setq buffer (current-buffer))
! (let ((inhibit-read-only t)
(old-end (point-min)) (new-end (point-min)))
;; If we saved an old backtrace, find the common part
;; between the new and the old.
***************
*** 390,395 ****
--- 393,399 ----
(interactive)
(setq debugger-step-after-exit t)
(setq debugger-jumping-flag t)
+ (setq debugger-will-be-back t)
(add-hook 'post-command-hook 'debugger-reenable)
(message "Proceeding, will debug on next eval or call.")
(exit-recursive-edit))
***************
*** 400,405 ****
--- 404,415 ----
(unless debugger-may-continue
(error "Cannot continue"))
(message "Continuing.")
+ (save-excursion
+ ;; Check to see if we've flagged some frame for debug-on-exit, in which
+ ;; case we'll probably come back to the debugger soon.
+ (goto-char (point-min))
+ (if (re-search-forward "^\\* " nil t)
+ (setq debugger-will-be-back t)))
(exit-recursive-edit))
(defun debugger-return-value (val)
***************
*** 410,415 ****
--- 420,431 ----
(setq debugger-value val)
(princ "Returning " t)
(prin1 debugger-value)
+ (save-excursion
+ ;; Check to see if we've flagged some frame for debug-on-exit, in which
+ ;; case we'll probably come back to the debugger soon.
+ (goto-char (point-min))
+ (if (re-search-forward "^\\* " nil t)
+ (setq debugger-will-be-back t)))
(exit-recursive-edit))
(defun debugger-jump ()
***************
*** 419,424 ****
--- 435,441 ----
(setq debugger-jumping-flag t)
(add-hook 'post-command-hook 'debugger-reenable)
(message "Continuing through this frame")
+ (setq debugger-will-be-back t)
(exit-recursive-edit))
(defun debugger-reenable ()
***************
*** 467,473 ****
(beginning-of-line)
(backtrace-debug (debugger-frame-number) t)
(if (= (following-char) ? )
! (let ((buffer-read-only nil))
(delete-char 1)
(insert ?*)))
(beginning-of-line))
--- 484,490 ----
(beginning-of-line)
(backtrace-debug (debugger-frame-number) t)
(if (= (following-char) ? )
! (let ((inhibit-read-only t))
(delete-char 1)
(insert ?*)))
(beginning-of-line))
***************
*** 483,489 ****
(beginning-of-line)
(backtrace-debug (debugger-frame-number) nil)
(if (= (following-char) ?*)
! (let ((buffer-read-only nil))
(delete-char 1)
(insert ? )))
(beginning-of-line))
--- 500,506 ----
(beginning-of-line)
(backtrace-debug (debugger-frame-number) nil)
(if (= (following-char) ?*)
! (let ((inhibit-read-only t))
(delete-char 1)
(insert ? )))
(beginning-of-line))
_______________________________________________
Emacs-diffs mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/emacs-diffs