# HG changeset patch # User Nick Roberts # Date 1042303595 0 # Node ID 8e748161e8cfcac02b85be4dbd70bf6d03ec855d # Parent c9b0a36c96b5c72434063a35eb7dec7299f6e1fd (gud-kill-buffer-hook): Save gud-minor-mode type. (gud-reset): New function. Reset environment at end of debugging. (gud-sentinel): Call gud-reset or gdb-reset. diff -r c9b0a36c96b5 -r 8e748161e8cf lisp/gud.el --- a/lisp/gud.el Sat Jan 11 16:45:15 2003 +0000 +++ b/lisp/gud.el Sat Jan 11 16:46:35 2003 +0000 @@ -2427,10 +2427,17 @@ ;; buffer killed ;; Stop displaying an arrow in a source file. (setq overlay-arrow-position nil) - (set-process-buffer proc nil)) + (set-process-buffer proc nil) + (if (eq gud-minor-mode-type 'gdba) + (gdb-reset) + (gud-reset))) ((memq (process-status proc) '(signal exit)) ;; Stop displaying an arrow in a source file. (setq overlay-arrow-position nil) + (with-current-buffer gud-comint-buffer + (if (eq gud-minor-mode 'gdba) + (gdb-reset) + (gud-reset))) (let* ((obuf (current-buffer))) ;; save-excursion isn't the right thing if ;; process-buffer is current-buffer @@ -2456,6 +2463,23 @@ ;; if obuf is the gud buffer. (set-buffer obuf)))))) +(defvar gud-minor-mode-type nil) + +(defun gud-kill-buffer-hook () + (if gud-minor-mode + (setq gud-minor-mode-type gud-minor-mode))) + +(add-hook 'kill-buffer-hook 'gud-kill-buffer-hook) + +(defun gud-reset () + (dolist (buffer (buffer-list)) + (if (not (eq buffer gud-comint-buffer)) + (save-excursion + (set-buffer buffer) + (when gud-minor-mode + (setq gud-minor-mode nil) + (kill-local-variable 'tool-bar-map)))))) + (defun gud-display-frame () "Find and obey the last filename-and-line marker from the debugger. Obeying it means displaying in another window the specified file and line."