From 8a2e287c26d7bd115be088aa03a3a332b44c7e78 Mon Sep 17 00:00:00 2001 From: Juri Linkov Date: Tue, 8 Jan 2013 02:28:55 +0200 Subject: [PATCH] * lisp/info.el (Info-read-node-name-2): Don't duplicate suffixes for single completion. (info--manual-names): Expand node completions into an explicit list before appending it to another list. Filter out internal buffers with the leading space in the buffer name. (Bug#10771) Fixes: debbugs:12456 --- lisp/ChangeLog | 8 ++++++++ lisp/info.el | 19 +++++++++++++++---- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 9b30294e65a..1a5a93861fb 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,11 @@ +2013-01-08 Juri Linkov + + * info.el (Info-read-node-name-2): Don't duplicate suffixes for + single completion. (Bug#12456) + (info--manual-names): Expand node completions into an explicit list + before appending it to another list. Filter out internal buffers + with the leading space in the buffer name. (Bug#10771) + 2013-01-08 Juri Linkov * info.el (Info-read-node-name-1): Allow empty node name in (FILENAME) diff --git a/lisp/info.el b/lisp/info.el index 9bce39a6d3a..48ad00c9f28 100644 --- a/lisp/info.el +++ b/lisp/info.el @@ -1742,6 +1742,7 @@ list of valid filename suffixes for Info files. See (when (file-name-absolute-p string) (setq dirs (list (file-name-directory string)))) (let ((names nil) + (names-sans-suffix nil) (suffix (concat (regexp-opt suffixes t) "\\'")) (string-dir (file-name-directory string))) (dolist (dir dirs) @@ -1764,7 +1765,14 @@ list of valid filename suffixes for Info files. See ;; add the unsuffixed name as a completion option. (when (string-match suffix file) (setq file (substring file 0 (match-beginning 0))) - (push (if string-dir (concat string-dir file) file) names))))) + (push (if string-dir (concat string-dir file) file) + names-sans-suffix))))) + ;; If there is just one file, don't duplicate it with suffixes, + ;; so `Info-read-node-name-1' will be able to complete a single + ;; candidate and to add the terminating ")". + (if (and (= (length names) 1) (= (length names-sans-suffix) 1)) + (setq names names-sans-suffix) + (setq names (append names-sans-suffix names))) (complete-with-action action names string pred))) (defun Info-read-node-name-1 (string predicate code) @@ -5174,13 +5182,16 @@ Otherwise, visit the manual in a new Info buffer." (with-current-buffer buffer (and (eq major-mode 'Info-mode) (stringp Info-current-file) + (not (string= (substring (buffer-name) 0 1) " ")) (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)))))) + (all-completions + "" + (apply-partially 'Info-read-node-name-2 + Info-directory-list + (mapcar 'car Info-suffix-list))))))) (provide 'info) -- 2.39.5