From 04b14f2b275b064440ca8366cd5b7c4effcdac82 Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Wed, 5 Dec 2012 14:14:11 +0800 Subject: [PATCH] Improve completion behavior of info-display-manual. * lisp/info.el (info-display-manual): Add existing Info buffers, whose files may not be in Info-directory-list, to the completion. (info--manual-names): New helper function. --- lisp/ChangeLog | 6 ++++++ lisp/info.el | 18 +++++++++++++++--- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 45fa38042a0..77eed9ed918 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2012-12-05 Chong Yidong + + * info.el (info-display-manual): Add existing Info buffers, whose + files may not be in Info-directory-list, to the completion. + (info--manual-names): New helper function. + 2012-12-05 Glenn Morris * vc/vc-hg.el (vc-hg-resolve-when-done, vc-hg-find-file-hook): diff --git a/lisp/info.el b/lisp/info.el index 6149c3fcd80..2c2d485e245 100644 --- a/lisp/info.el +++ b/lisp/info.el @@ -5105,9 +5105,7 @@ Otherwise, visit the manual in a new Info buffer." (progn (info-initialize) (completing-read "Manual name: " - (apply-partially 'Info-read-node-name-2 - Info-directory-list - (mapcar 'car Info-suffix-list)) + (info--manual-names) nil t)))) (let ((blist (buffer-list)) (manual-re (concat "\\(/\\|\\`\\)" manual "\\(\\.\\|\\'\\)")) @@ -5126,6 +5124,20 @@ Otherwise, visit the manual in a new Info buffer." (info (Info-find-file manual) (generate-new-buffer-name "*info*"))))) +(defun info--manual-names () + (let (names) + (dolist (buffer (buffer-list)) + (with-current-buffer buffer + (and (eq major-mode 'Info-mode) + (stringp Info-current-file) + (push (file-name-sans-extension + (file-name-nondirectory Info-current-file)) + names)))) + (delete-dups (append (nreverse names) + (apply-partially 'Info-read-node-name-2 + Info-directory-list + (mapcar 'car Info-suffix-list)))))) + (provide 'info) ;;; info.el ends here -- 2.39.2