]> git.eshelyaron.com Git - emacs.git/commitdiff
(debugger-window): New variable.
authorRichard M. Stallman <rms@gnu.org>
Mon, 6 Jun 2005 12:29:57 +0000 (12:29 +0000)
committerRichard M. Stallman <rms@gnu.org>
Mon, 6 Jun 2005 12:29:57 +0000 (12:29 +0000)
(debug): Use debugger-window if it is set and still alive.
Record debugger-window for next entry.

lisp/emacs-lisp/debug.el

index 2149cba87208e922b180abe30158d088467f35ba..7d7e066b4e80289d735b2b30acbab517d40a641f 100644 (file)
@@ -97,6 +97,11 @@ This is to optimize `debugger-make-xrefs'.")
 This variable is used by `debugger-jump', `debugger-step-through',
 and `debugger-reenable' to temporarily disable debug-on-entry.")
 
+(defvar debugger-window nil
+  "If non-nil,  the last window used by the debugger for its buffer.
+The next call to the debugger reuses the same window, if it is still live.
+That case would normally occur when the window is in a separate frame.")
+
 ;;;###autoload
 (setq debugger 'debug)
 ;;;###autoload
@@ -178,7 +183,13 @@ first will be printed into the backtrace buffer."
                  ;; Place an extra debug-on-exit for macro's.
                  (when (eq 'lambda (car-safe (cadr (backtrace-frame 4))))
                    (backtrace-debug 5 t)))
-               (pop-to-buffer debugger-buffer)
+               (if (and debugger-window
+                        (window-live-p debugger-window))
+                   (progn
+                     (set-window-buffer debugger-window debugger-buffer)
+                     (select-window debugger-window))
+                 (pop-to-buffer debugger-buffer))
+               (setq debugger-window (selected-window))
                (debugger-mode)
                (debugger-setup-buffer debugger-args)
                (when noninteractive