# HG changeset patch # User Richard M. Stallman # Date 740521085 0 # Node ID 04f1cff889f4e8c9c5ed8ec12a03b73d8ba884bc # Parent e3a00a940cf48ef2854481daf4d004b4a4b217dc (Info-insert-dir): Record file attributes of files used. Recompute the dir if they change. diff -r e3a00a940cf4 -r 04f1cff889f4 lisp/info.el --- a/lisp/info.el Sat Jun 19 19:07:19 1993 +0000 +++ b/lisp/info.el Sat Jun 19 20:18:05 1993 +0000 @@ -279,13 +279,25 @@ ;; of the merged dir text. (defvar Info-dir-contents-directory nil) +;; Record the file attributes of all the files from which we +;; constructed Info-dir-contents. +(defvar Info-dir-file-attributes nil) + ;; Construct the Info directory node by merging the files named `dir' ;; from various directories. Set the *info* buffer's ;; default-directory to the first directory we actually get any text ;; from. (defun Info-insert-dir () - (if Info-dir-contents + (if (and Info-dir-contents Info-dir-file-attributes + ;; Verify that none of the files we used has changed + ;; since we used it. + (eval (cons 'and + (mapcar '(lambda (elt) + (equal (cdr elt) + (file-attributes (car elt)))) + Info-dir-file-attributes)))) (insert Info-dir-contents) + (recursive-edit) (let ((dirs Info-directory-list) buffers buffer others nodes dirs-done) @@ -316,7 +328,11 @@ (cons (directory-file-name (file-truename (expand-file-name (car dirs)))) dirs-done))) - (if buffer (setq buffers (cons buffer buffers))))) + (if buffer (setq buffers (cons buffer buffers) + Info-dir-file-attributes + (cons (cons (buffer-file-name buffer) + (file-attributes (buffer-file-name buffer))) + Info-dir-file-attributes))))) (setq dirs (cdr dirs))) ;; Distinguish the dir file that comes with Emacs from all the