[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master fa2b60615b: xref--find-file-buffer: Check modified-p and modtime
From: |
Dmitry Gutov |
Subject: |
master fa2b60615b: xref--find-file-buffer: Check modified-p and modtime |
Date: |
Thu, 24 Feb 2022 20:36:04 -0500 (EST) |
branch: master
commit fa2b60615b517514c9b83b360a2504048ff0394b
Author: Dmitry Gutov <dgutov@yandex.ru>
Commit: Dmitry Gutov <dgutov@yandex.ru>
xref--find-file-buffer: Check modified-p and modtime
* lisp/progmodes/xref.el (xref--find-file-buffer):
Check whether the buffer contents match what's on disk
(bug#54025).
---
lisp/progmodes/xref.el | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el
index aa98aa89f1..96fb835d0f 100644
--- a/lisp/progmodes/xref.el
+++ b/lisp/progmodes/xref.el
@@ -2010,10 +2010,16 @@ Such as the current syntax table and the applied syntax
properties."
(defun xref--find-file-buffer (file)
(unless (equal (car xref--last-file-buffer) file)
- (setq xref--last-file-buffer
- ;; `find-buffer-visiting' is considerably slower,
- ;; especially on remote files.
- (cons file (get-file-buffer file))))
+ ;; `find-buffer-visiting' is considerably slower,
+ ;; especially on remote files.
+ (let ((buf (get-file-buffer file)))
+ (when (and buf
+ (or
+ (buffer-modified-p buf)
+ (not (verify-visited-file-modtime (current-buffer)))))
+ ;; We can't use buffers whose contents diverge from disk (bug#54025).
+ (setq buf nil))
+ (setq xref--last-file-buffer (cons file buf))))
(cdr xref--last-file-buffer))
(provide 'xref)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master fa2b60615b: xref--find-file-buffer: Check modified-p and modtime,
Dmitry Gutov <=