Mercurial > emacs
changeset 3836:04f1cff889f4
(Info-insert-dir): Record file attributes of files used.
Recompute the dir if they change.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sat, 19 Jun 1993 20:18:05 +0000 |
parents | e3a00a940cf4 |
children | 85652925d5b8 |
files | lisp/info.el |
diffstat | 1 files changed, 18 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- 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