diff options
author | Nick Roberts <[email protected]> | 2003-01-20 22:03:50 +0000 |
---|---|---|
committer | Nick Roberts <[email protected]> | 2003-01-20 22:03:50 +0000 |
commit | 7461cbeb210de27bb62f1bbccdbad963fa9613a4 (patch) | |
tree | d726d1b09992813296aeb49f73da8f22168ab255 /lisp | |
parent | ddef3b66d398eb94ba0134e7ad9537d02f953cd5 (diff) |
(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.
Diffstat (limited to 'lisp')
-rw-r--r-- | lisp/gud.el | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/lisp/gud.el b/lisp/gud.el index 08b0ee92f3..862ecd3e38 100644 --- a/lisp/gud.el +++ b/lisp/gud.el @@ -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 |