diff options
author | Juri Linkov <juri@jurta.org> | 2013-01-08 02:28:55 +0200 |
---|---|---|
committer | Juri Linkov <juri@jurta.org> | 2013-01-08 02:28:55 +0200 |
commit | 8a2e287c26d7bd115be088aa03a3a332b44c7e78 (patch) | |
tree | 040634858b662402d8030194812e37ec3d0b32f9 /lisp/info.el | |
parent | c6a22ce23dad655c84f95bad1ed5191c2682f74e (diff) | |
download | emacs-8a2e287c26d7bd115be088aa03a3a332b44c7e78.tar.gz |
* 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
Diffstat (limited to 'lisp/info.el')
-rw-r--r-- | lisp/info.el | 19 |
1 files changed, 15 insertions, 4 deletions
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) |