(Info-insert-dir): Ignore duplicate directories.
This commit is contained in:
parent
e562af697c
commit
f4008b6ee9
1 changed files with 28 additions and 25 deletions
53
lisp/info.el
53
lisp/info.el
|
@ -287,36 +287,39 @@ to read a file name from the minibuffer."
|
|||
(if Info-dir-contents
|
||||
(insert Info-dir-contents)
|
||||
(let ((dirs Info-directory-list)
|
||||
buffers buffer others nodes)
|
||||
buffers buffer others nodes dirs-done)
|
||||
|
||||
;; Search the directory list for the directory file.
|
||||
(while dirs
|
||||
;; Try several variants of specified name.
|
||||
;; Try upcasing, appending `.info', or both.
|
||||
(let* (temp
|
||||
(buffer
|
||||
(cond
|
||||
((progn (setq temp (expand-file-name "DIR" (car dirs)))
|
||||
(file-exists-p temp))
|
||||
(find-file-noselect temp))
|
||||
((progn (setq temp (expand-file-name "dir" (car dirs)))
|
||||
(file-exists-p temp))
|
||||
(find-file-noselect temp))
|
||||
((progn (setq temp (expand-file-name "DIR.INFO" (car dirs)))
|
||||
(file-exists-p temp))
|
||||
(find-file-noselect temp))
|
||||
((progn (setq temp (expand-file-name "dir.info" (car dirs)))
|
||||
(file-exists-p temp))
|
||||
(find-file-noselect temp)))))
|
||||
(if buffer (setq buffers (cons buffer buffers)))
|
||||
(setq dirs (cdr dirs))))
|
||||
(or (member (file-truename (expand-file-name (car dirs))) dirs-done)
|
||||
(member (directory-file-name (file-truename (expand-file-name (car dirs))))
|
||||
dirs-done)
|
||||
;; Try several variants of specified name.
|
||||
;; Try upcasing, appending `.info', or both.
|
||||
(let* (temp
|
||||
(buffer
|
||||
(cond
|
||||
((progn (setq temp (expand-file-name "DIR" (car dirs)))
|
||||
(file-exists-p temp))
|
||||
(find-file-noselect temp))
|
||||
((progn (setq temp (expand-file-name "dir" (car dirs)))
|
||||
(file-exists-p temp))
|
||||
(find-file-noselect temp))
|
||||
((progn (setq temp (expand-file-name "DIR.INFO" (car dirs)))
|
||||
(file-exists-p temp))
|
||||
(find-file-noselect temp))
|
||||
((progn (setq temp (expand-file-name "dir.info" (car dirs)))
|
||||
(file-exists-p temp))
|
||||
(find-file-noselect temp)))))
|
||||
(setq dirs-done
|
||||
(cons (file-truename (expand-file-name (car dirs)))
|
||||
dirs-done))
|
||||
(if buffer (setq buffers (cons buffer buffers)))))
|
||||
(setq dirs (cdr dirs)))
|
||||
|
||||
;; Distinguish the dir file that comes with Emacs from all the
|
||||
;; others. [This sounds like baloney - who knows what order
|
||||
;; Info-directory-list is in, especially after checking the
|
||||
;; INFOPATH variable, and why should Emacs's dir be special? If
|
||||
;; you understand what this comment should have said, please
|
||||
;; change it.]
|
||||
;; others. Yes, that is really what this is supposed to do.
|
||||
;; If it doesn't work, fix it.
|
||||
(setq buffer (car buffers)
|
||||
others (cdr buffers))
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue