]> git.eshelyaron.com Git - emacs.git/commitdiff
Improve completion behavior of info-display-manual.
authorChong Yidong <cyd@gnu.org>
Wed, 5 Dec 2012 06:14:11 +0000 (14:14 +0800)
committerChong Yidong <cyd@gnu.org>
Wed, 5 Dec 2012 06:14:11 +0000 (14:14 +0800)
* 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
lisp/info.el

index 45fa38042a00b2ed7597d67b7b352bc6811b9bd5..77eed9ed918b65e06ef8070cfa86de0428e0c352 100644 (file)
@@ -1,3 +1,9 @@
+2012-12-05  Chong Yidong  <cyd@gnu.org>
+
+       * 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  <rgm@gnu.org>
 
        * vc/vc-hg.el (vc-hg-resolve-when-done, vc-hg-find-file-hook):
index 6149c3fcd801031ecc121d96d41dcd664831444d..2c2d485e245871273f35d59949b2c02d25d72ba8 100644 (file)
@@ -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