summaryrefslogtreecommitdiff
path: root/lisp/info.el
diff options
context:
space:
mode:
authorJuri Linkov <juri@jurta.org>2009-12-05 19:49:47 +0000
committerJuri Linkov <juri@jurta.org>2009-12-05 19:49:47 +0000
commit30760c8bc78208568a28952738857aa0ab10ccd8 (patch)
tree325b2bc3a291385fa3883e49ba8cabdaa25d17b7 /lisp/info.el
parent1dc5c6f318d8b4a92e8552b74fdf097386c5d771 (diff)
downloademacs-30760c8bc78208568a28952738857aa0ab10ccd8.tar.gz
(Info-find-node-2): Set `Info-current-subfile' to nil
for virtual nodes. (Bug#4147) (Info-find-node-2): Set `Info-current-node-virtual' to nil when moving from a virtual node. (Info-mode-menu): Add `Info-virtual-index' to the menu. (Info-mode): Add `Info-virtual-index' to the docstring.
Diffstat (limited to 'lisp/info.el')
-rw-r--r--lisp/info.el16
1 files changed, 12 insertions, 4 deletions
diff --git a/lisp/info.el b/lisp/info.el
index 7e038564e51..1bd82efdf2a 100644
--- a/lisp/info.el
+++ b/lisp/info.el
@@ -912,10 +912,12 @@ a case-insensitive match is tried."
(cond
((functionp virtual-fun)
(let ((filename (or filename Info-current-file)))
- (setq buffer-file-name nil)
(setq buffer-read-only nil)
+ (setq Info-current-file filename
+ Info-current-subfile nil
+ Info-current-file-completions nil
+ buffer-file-name nil)
(erase-buffer)
- (setq Info-current-file filename)
(Info-virtual-call virtual-fun filename nodename no-going-back)
(set-marker Info-tag-table-marker nil)
(setq buffer-read-only t)
@@ -928,8 +930,11 @@ a case-insensitive match is tried."
(equal Info-current-file filename))))
;; Switch files if necessary
(let ((inhibit-read-only t))
- (if (and Info-current-node-virtual (null filename))
- (setq filename Info-current-file))
+ (when Info-current-node-virtual
+ ;; When moving from a virtual node.
+ (set (make-local-variable 'Info-current-node-virtual) nil)
+ (if (null filename)
+ (setq filename Info-current-file)))
(setq Info-current-file nil
Info-current-subfile nil
Info-current-file-completions nil
@@ -3650,6 +3655,8 @@ If FORK is non-nil, it is passed to `Info-goto-node'."
:help "Look for a string in the index items"]
["Next Matching Item" Info-index-next :active Info-index-alternatives
:help "Look for another occurrence of previous item"]
+ ["Lookup a string and display index of results..." Info-virtual-index
+ :help "Look for a string in the index items and display node with results"]
["Lookup a string in all indices..." info-apropos
:help "Look for a string in the indices of all manuals"])
["Copy Node Name" Info-copy-current-node-name
@@ -3824,6 +3831,7 @@ Advanced commands:
\\[isearch-forward], \\[isearch-forward-regexp] Use Isearch to search through multiple Info nodes.
\\[Info-index] Search for a topic in this manual's Index and go to index entry.
\\[Info-index-next] (comma) Move to the next match from a previous \\<Info-mode-map>\\[Info-index] command.
+\\[Info-virtual-index] Look for a string and display the index node with results.
\\[info-apropos] Look for a string in the indices of all manuals.
\\[Info-goto-node] Move to node specified by name.
You may include a filename as well, as (FILENAME)NODENAME.