1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-09 07:40:39 -08:00

(debug): Don't kill-emacs upon exit when in batch mode

AFAICT this is a left over code from many years ago before
the `debug` special case was added to `condition-case` and
at a time where exiting from `debug` did not proceed to handle
remaining handlers.

In the usual case where we indeed want to kill Emacs,
`signal_or_quit` does it for us.

* lisp/emacs-lisp/debug.el (debug): Don't `kill-emacs` upon exit
when in batch mode (bug#76786)
This commit is contained in:
Stefan Monnier 2025-03-06 13:02:37 -05:00
parent 1133c081d6
commit 82affcaeff

View file

@ -253,11 +253,11 @@ the debugger will not be entered."
;; Place an extra debug-on-exit for macro's.
(when (eq 'lambda (car-safe (cadr (backtrace-frame 1 base))))
(backtrace-debug 2 t base))))
(with-current-buffer debugger-buffer
(unless (derived-mode-p 'debugger-mode)
(debugger-mode))
(debugger-setup-buffer debugger-args)
(when non-interactive-frame
(set-buffer debugger-buffer)
(unless (derived-mode-p 'debugger-mode)
(debugger-mode))
(debugger-setup-buffer debugger-args)
(if non-interactive-frame
;; If the backtrace is long, save the beginning
;; and the end, but discard the middle.
(let ((inhibit-read-only t))
@ -269,38 +269,37 @@ the debugger will not be entered."
(goto-char (point-max))
(forward-line (- (/ debugger-batch-max-lines 2)))
(delete-region middlestart (point)))
(insert "...\n")))
(message "%s" (buffer-string))
(kill-emacs -1)))
(pop-to-buffer
debugger-buffer
`((display-buffer-reuse-window
display-buffer-in-previous-window
display-buffer-below-selected)
. ((window-min-height . 10)
(window-height . fit-window-to-buffer)
,@(when (and (window-live-p debugger-previous-window)
(frame-visible-p
(window-frame debugger-previous-window)))
`((previous-window . ,debugger-previous-window))))))
(setq debugger-window (selected-window))
(when debugger-jumping-flag
;; Try to restore previous height of debugger
;; window.
(condition-case nil
(window-resize
debugger-window
(- debugger-previous-window-height
(window-total-height debugger-window)))
(error nil))
(setq debugger-previous-window debugger-window))
(message "")
(let ((standard-output nil)
(buffer-read-only t))
(message "")
;; Make sure we unbind buffer-read-only in the right buffer.
(save-excursion
(recursive-edit))))
(insert "...\n"))
(message "%s" (buffer-string)))
(pop-to-buffer
debugger-buffer
`((display-buffer-reuse-window
display-buffer-in-previous-window
display-buffer-below-selected)
. ((window-min-height . 10)
(window-height . fit-window-to-buffer)
,@(when (and (window-live-p debugger-previous-window)
(frame-visible-p
(window-frame debugger-previous-window)))
`((previous-window . ,debugger-previous-window))))))
(setq debugger-window (selected-window))
(when debugger-jumping-flag
;; Try to restore previous height of debugger
;; window.
(condition-case nil
(window-resize
debugger-window
(- debugger-previous-window-height
(window-total-height debugger-window)))
(error nil))
(setq debugger-previous-window debugger-window))
(message "")
(let ((standard-output nil)
(buffer-read-only t))
(message "")
;; Make sure we unbind buffer-read-only in the right buffer.
(save-excursion
(recursive-edit)))))
(when (and (window-live-p debugger-window)
(eq (window-buffer debugger-window) debugger-buffer))
;; Record height of debugger window.