diff lisp/info.el @ 1425:74cb069b8417

[xemacs-hg @ 2003-04-23 15:42:44 by stephent] stale match data <87fzo99rje.fsf@tleepslib.sk.tsukuba.ac.jp> new split-string <87d6jd9qis.fsf@tleepslib.sk.tsukuba.ac.jp> support (info "(file)node") <87adeh9qa7.fsf@tleepslib.sk.tsukuba.ac.jp>
author stephent
date Wed, 23 Apr 2003 15:42:52 +0000
parents c08a6fa181d1
children 375ec21c9374
line wrap: on
line diff
--- a/lisp/info.el	Tue Apr 22 03:24:13 2003 +0000
+++ b/lisp/info.el	Wed Apr 23 15:42:52 2003 +0000
@@ -574,6 +574,9 @@
 Optional argument FILE specifies the file to examine;
 the default is the top-level directory of Info.
 
+Called from a program, FILE may specify an Info node of the form
+`(FILENAME)NODENAME'.
+
 In interactive use, a prefix argument directs this command
 to read a file name from the minibuffer."
   (interactive (if current-prefix-arg
@@ -592,7 +595,15 @@
 ;  (Info-setup-x) ??? What was this going to be?  Can anyone tell karlheg?
   (if file
       (unwind-protect
-	  (Info-goto-node (concat "(" file ")"))
+	  (progn
+	   (pop-to-buffer "*info*")
+	   ;; If argument already contains parentheses, don't add another set
+	   ;; since the argument will then be parsed improperly.  This also
+	   ;; has the added benefit of allowing node names to be included
+	   ;; following the parenthesized filename.
+	   (if (and (stringp file) (string-match "(.*)" file))
+	       (Info-goto-node file)
+	     (Info-goto-node (concat "(" file ")"))))
 	(and Info-standalone (info)))
     (if (get-buffer "*info*")
 	(switch-to-buffer "*info*")