changeset 8073:6511fd7aaea4

(dired-readin): Record the directory's modtime. (dired-internal-noselect): Offer to revert if dir has changed.
author Richard M. Stallman <rms@gnu.org>
date Tue, 28 Jun 1994 08:36:16 +0000
parents 48c81a052cea
children cef2897f2e15
files lisp/dired.el
diffstat 1 files changed, 13 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/dired.el	Tue Jun 28 05:15:44 1994 +0000
+++ b/lisp/dired.el	Tue Jun 28 08:36:16 1994 +0000
@@ -398,7 +398,16 @@
     (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 @@
       ;; 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