From: Nick Roberts Date: Mon, 20 Jan 2003 22:03:50 +0000 (+0000) Subject: (gud-display-line): If the current file is newer than its X-Git-Tag: ttn-vms-21-2-B4~11556 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=7461cbeb210de27bb62f1bbccdbad963fa9613a4;p=emacs.git (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. --- diff --git a/lisp/gud.el b/lisp/gud.el index 08b0ee92f33..862ecd3e38f 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--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