diff lisp/info.el @ 21704:e2283c4df334

(Info-fontify-node): For menu items, use info-xref font. Use info-node font for the node's own name, and do not make it mouse-sensitive. (Info-find-node): Update Info-history after switching buffer. (info): If no arg, and *info* buffer exists, just go to it and don't alter it.
author Richard M. Stallman <rms@gnu.org>
date Wed, 22 Apr 1998 03:19:43 +0000
parents 1174b1d6cbf6
children d17bf0e8a170
line wrap: on
line diff
--- a/lisp/info.el	Wed Apr 22 02:46:30 1998 +0000
+++ b/lisp/info.el	Wed Apr 22 03:19:43 1998 +0000
@@ -286,10 +286,12 @@
 in all the directories in that path."
   (interactive (if current-prefix-arg
 		   (list (read-file-name "Info file name: " nil nil t))))
-  (pop-to-buffer "*info*")
   (if file
-      (Info-goto-node (concat "(" file ")"))
-    (Info-directory)))
+      (progn (pop-to-buffer "*info*")
+	     (Info-goto-node (concat "(" file ")")))
+    (if (get-buffer "*info*")
+	(pop-to-buffer "*info*")
+      (Info-directory))))
 
 ;;;###autoload
 (defun info-standalone ()
@@ -353,16 +355,16 @@
 	(if found
 	    (setq filename found)
 	  (error "Info file %s does not exist" filename))))
+  ;; Go into info buffer.
+  (or (eq major-mode 'Info-mode) (pop-to-buffer "*info*"))
+  (buffer-disable-undo (current-buffer))
+  (or (eq major-mode 'Info-mode)
+      (Info-mode))
   ;; Record the node we are leaving.
   (if (and Info-current-file (not no-going-back))
       (setq Info-history
 	    (cons (list Info-current-file Info-current-node (point))
 		  Info-history)))
-  ;; Go into info buffer.
-  (or (eq major-mode 'Info-mode) (pop-to-buffer "*info*"))
-  (buffer-disable-undo (current-buffer))
-  (or (eq major-mode 'Info-mode)
-      (Info-mode))
   (widen)
   (setq Info-current-node nil)
   (unwind-protect
@@ -1997,16 +1999,20 @@
   (save-excursion
     (let ((buffer-read-only nil))
       (goto-char (point-min))
-      (if (looking-at "^File: [^,: \t]+,?[ \t]+")
-	  (progn
-	    (goto-char (match-end 0))
-	    (while
-		(looking-at "[ \t]*[^:, \t\n]+:[ \t]+\\([^:,\t\n]+\\),?")
-	      (goto-char (match-end 0))
-	      (put-text-property (match-beginning 1) (match-end 1)
-				 'face 'info-xref)
-	      (put-text-property (match-beginning 1) (match-end 1)
-				 'mouse-face 'highlight))))
+      (when (looking-at "^File: [^,: \t]+,?[ \t]+")
+	(goto-char (match-end 0))
+	(while
+	    (looking-at "[ \t]*\\([^:, \t\n]+\\):[ \t]+\\([^:,\t\n]+\\),?")
+	  (goto-char (match-end 0))
+	  (if (save-excursion
+		(goto-char (match-beginning 1))
+		(save-match-data (looking-at "Node:")))
+	      (put-text-property (match-beginning 2) (match-end 2)
+				 'face 'info-node)
+	    (put-text-property (match-beginning 2) (match-end 2)
+			       'face 'info-xref)
+	    (put-text-property (match-beginning 2) (match-end 2)
+			       'mouse-face 'highlight))))
       (goto-char (point-min))
       (while (re-search-forward "\n\\([^ \t\n].+\\)\n\\(\\*+\\|=+\\|-+\\)$"
 				 nil t)
@@ -2040,7 +2046,7 @@
 				     (1+ (match-beginning 0))
 				     'face 'info-menu-5))
 	      (put-text-property (match-beginning 1) (match-end 1)
-				 'face 'info-node)
+				 'face 'info-xref)
 	      (put-text-property (match-beginning 1) (match-end 1)
 				 'mouse-face 'highlight))))
       (set-buffer-modified-p nil))))