aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarl Heuer1994-03-29 02:20:04 +0000
committerKarl Heuer1994-03-29 02:20:04 +0000
commit36363ac158623e4e1b9ec5bc14d7836ae6fb5ff3 (patch)
tree7a58a1164012b3821387e041c9b26858ed444308
parent97f99202711274e28ef168add075431f2146592a (diff)
downloademacs-36363ac158623e4e1b9ec5bc14d7836ae6fb5ff3.tar.gz
emacs-36363ac158623e4e1b9ec5bc14d7836ae6fb5ff3.zip
(debug): Behave sensibly if pop-up-frames is set.
-rw-r--r--lisp/emacs-lisp/debug.el17
1 files changed, 13 insertions, 4 deletions
diff --git a/lisp/emacs-lisp/debug.el b/lisp/emacs-lisp/debug.el
index 150686ce4ce..68a26d8ebab 100644
--- a/lisp/emacs-lisp/debug.el
+++ b/lisp/emacs-lisp/debug.el
@@ -60,7 +60,7 @@ first will be printed into the backtrace buffer."
60 (debug-on-error nil) 60 (debug-on-error nil)
61 (debug-on-quit nil) 61 (debug-on-quit nil)
62 (debugger-buffer (let ((default-major-mode 'fundamental-mode)) 62 (debugger-buffer (let ((default-major-mode 'fundamental-mode))
63 (generate-new-buffer "*Backtrace*"))) 63 (get-buffer-create "*Backtrace*")))
64 (debugger-old-buffer (current-buffer)) 64 (debugger-old-buffer (current-buffer))
65 (debugger-step-after-exit nil) 65 (debugger-step-after-exit nil)
66 ;; Don't keep reading from an executing kbd macro! 66 ;; Don't keep reading from an executing kbd macro!
@@ -136,9 +136,18 @@ first will be printed into the backtrace buffer."
136 (buffer-read-only t)) 136 (buffer-read-only t))
137 (message "") 137 (message "")
138 (recursive-edit)))) 138 (recursive-edit))))
139 ;; So that users do not try to execute debugger commands 139 ;; Kill or at least neuter the backtrace buffer, so that users
140 ;; in an invalid context 140 ;; don't try to execute debugger commands in an invalid context.
141 (kill-buffer debugger-buffer) 141 (if (get-buffer-window debugger-buffer 'visible)
142 ;; Still visible despite the save-window-excursion? Maybe it
143 ;; it's in a pop-up frame. It would be annoying to delete and
144 ;; recreate it every time the debugger stops, so instead we'll
145 ;; erase it but leave it visible.
146 (save-excursion
147 (set-buffer debugger-buffer)
148 (erase-buffer)
149 (fundamental-mode))
150 (kill-buffer debugger-buffer))
142 (store-match-data debugger-match-data))) 151 (store-match-data debugger-match-data)))
143 ;; Put into effect the modified values of these variables 152 ;; Put into effect the modified values of these variables
144 ;; in case the user set them with the `e' command. 153 ;; in case the user set them with the `e' command.