From: Chong Yidong Date: Fri, 1 Feb 2008 23:21:56 +0000 (+0000) Subject: (tags-loop-revert-buffers): Value `ask' means to query the user interactively. X-Git-Tag: emacs-pretest-22.1.91~102 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=6272cd3f01c988047f7749a1b3268ef437906548;p=emacs.git (tags-loop-revert-buffers): Value `ask' means to query the user interactively. (next-file): Implement it. --- diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el index 0a66560f827..74cf07039a2 100644 --- a/lisp/progmodes/etags.el +++ b/lisp/progmodes/etags.el @@ -1629,12 +1629,14 @@ where they were found." (and (search-forward "\177" (save-excursion (end-of-line) (point)) t) (re-search-backward re bol t))))) -(defcustom tags-loop-revert-buffers nil - "*Non-nil means tags-scanning loops should offer to reread changed files. -These loops normally read each file into Emacs, but when a file -is already visited, they use the existing buffer. -When this flag is non-nil, they offer to revert the existing buffer -in the case where the file has changed since you visited it." +(defcustom tags-loop-revert-buffers 'ask + "Whether the tags-scanning loop should reread changed files. +This loop normally reads each file into Emacs, but when a file is +already visited, it uses the existing buffer. +If this variable is nil, the loop uses the existing buffer even +if the file has changed since you visited it. +If the value is `ask', the loop offers to revert the buffer. +Any other non-nil value means to revert the buffer automatically." :type 'boolean :group 'etags) @@ -1696,6 +1698,14 @@ if the file was newly read in, the value is the filename." ;; if the files have changed on disk. (and buffer tags-loop-revert-buffers (not (verify-visited-file-modtime buffer)) + (or (not (eq tags-loop-revert-buffers 'ask)) + noninteractive + (y-or-n-p + (format + (if (buffer-modified-p buffer) + "File %s changed on disk. Discard your edits? " + "File %s changed on disk. Reread from disk? ") + next))) (with-current-buffer buffer (revert-buffer t))) (if (not (and new novisit))