From 30760c8bc78208568a28952738857aa0ab10ccd8 Mon Sep 17 00:00:00 2001 From: Juri Linkov Date: Sat, 5 Dec 2009 19:49:47 +0000 Subject: [PATCH] (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. --- lisp/ChangeLog | 9 +++++++++ lisp/info.el | 16 ++++++++++++---- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 47b361a392..59f6646031 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,12 @@ +2009-12-05 Juri Linkov + + * info.el (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. + 2009-12-05 Eric Ludlam * cedet/semantic/bovine/c.el (semantic-c-describe-environment): diff --git a/lisp/info.el b/lisp/info.el index 7e038564e5..1bd82efdf2 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-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. -- 2.39.2