changeset 106432:a67d65733a07

(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.
author Juri Linkov <juri@jurta.org>
date Sat, 05 Dec 2009 19:49:47 +0000
parents 4ffa662ec661
children 7c2192f52cb6
files lisp/ChangeLog lisp/info.el
diffstat 2 files changed, 21 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Sat Dec 05 19:10:42 2009 +0000
+++ b/lisp/ChangeLog	Sat Dec 05 19:49:47 2009 +0000
@@ -1,3 +1,12 @@
+2009-12-05  Juri Linkov  <juri@jurta.org>
+
+	* 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  <zappo@gnu.org>
 
 	* cedet/semantic/bovine/c.el (semantic-c-describe-environment):
--- a/lisp/info.el	Sat Dec 05 19:10:42 2009 +0000
+++ b/lisp/info.el	Sat Dec 05 19:49:47 2009 +0000
@@ -912,10 +912,12 @@
 	(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 @@
 		    (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 @@
      :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 @@
 \\[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.