(gud-display-line): If the current file is newer than its

buffer, offer to reread the file.
(gud-keep-buffer): New buffer local variable. Ensures offer to
reread file is made just once.
This commit is contained in:
Nick Roberts 2003-01-20 22:03:50 +00:00
parent ddef3b66d3
commit 7461cbeb21

View file

@ -71,6 +71,8 @@ Supported debuggers include gdb, sdb, dbx, xdb, perldb, pdb (Python), jdb, and b
(defvar gud-minor-mode nil)
(put 'gud-minor-mode 'permanent-local t)
(defvar gud-keep-buffer nil)
(defun gud-symbol (sym &optional soft minor-mode)
"Return the symbol used for SYM in MINOR-MODE.
MINOR-MODE defaults to `gud-minor-mode.
@ -188,7 +190,8 @@ Uses `gud-<MINOR-MODE>-directories' to find the source files."
;; Copy `gud-minor-mode' to the found buffer to turn on the menu.
(with-current-buffer buf
(set (make-local-variable 'gud-minor-mode) minor-mode)
(set (make-local-variable 'tool-bar-map) gud-tool-bar-map))
(set (make-local-variable 'tool-bar-map) gud-tool-bar-map)
(make-local-variable 'gud-keep-buffer))
buf)))
;; ======================================================================
@ -2513,17 +2516,25 @@ Obeying it means displaying in another window the specified file and line."
(progn
(save-excursion
(set-buffer buffer)
(if (not (or (verify-visited-file-modtime buffer) gud-keep-buffer))
(progn
(if
(yes-or-no-p
(format "File %s changed on disk. Reread from disk? "
(buffer-name)))
(revert-buffer t t)
(setq gud-keep-buffer t))))
(save-restriction
(widen)
(goto-line line)
(setq pos (point))
(setq overlay-arrow-string "=>")
(or overlay-arrow-position
(setq overlay-arrow-position (make-marker)))
(setq overlay-arrow-position (make-marker)))
(set-marker overlay-arrow-position (point) (current-buffer)))
(cond ((or (< pos (point-min)) (> pos (point-max)))
(widen)
(goto-char pos))))
(widen)
(goto-char pos))))
(set-window-point window overlay-arrow-position)))))
;; The gud-call function must do the right thing whether its invoking