From fa562dd5e14ed55d584bffe2c99a92acb122ada4 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Tue, 28 Jun 1994 08:36:16 +0000 Subject: [PATCH] (dired-readin): Record the directory's modtime. (dired-internal-noselect): Offer to revert if dir has changed. --- lisp/dired.el | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/lisp/dired.el b/lisp/dired.el index e81a34f073e..3fb87804342 100644 --- a/lisp/dired.el +++ b/lisp/dired.el @@ -398,7 +398,16 @@ If DIRNAME is already in a dired buffer, that buffer is used without refresh." (set-buffer buffer) (if (not new-buffer-p) ; existing buffer ... (if switches ; ... but new switches - (dired-sort-other switches)) ; this calls dired-revert + (dired-sort-other switches) ; this calls dired-revert + ;; If directory has changed on disk, offer to revert. + (if (let ((attributes (file-attributes dirname)) + (modtime (visited-file-modtime))) + (or (not (eq (car attributes) t)) + (and (= (car (nth 5 attributes)) (car modtime)) + (= (nth 1 (nth 5 attributes)) (cdr modtime))))) + nil + (if (yes-or-no-p "Directory has changed on disk; update the buffer? ") + (dired-revert)))) ;; Else a new buffer (setq default-directory (abbreviate-file-name @@ -482,6 +491,9 @@ If DIRNAME is already in a dired buffer, that buffer is used without refresh." ;; dired-build-subdir-alist will call dired-clear-alist first (set (make-local-variable 'dired-subdir-alist) nil) (dired-build-subdir-alist) + (let ((attributes (file-attributes dirname))) + (if (eq (car attributes) t) + (set-visited-file-modtime (nth 5 attributes)))) (set-buffer-modified-p nil)))) ;; Subroutines of dired-readin -- 2.39.5