# HG changeset patch # User Richard M. Stallman # Date 894153730 0 # Node ID 702383d93b752a2aa9c4dad5356cbd34a4f7db9e # Parent bd22ccd2151e3aad5bdff27acc1ca4ecae1a56c4 (Info-up): New arg SAME-FILE: don't move to different file. (Info-next-preorder): Pass new arg to Info-up. (Info-last-preorder): Likewise. (Info-last-preorder): Don't follow the Prev if it's same as the Up. Instead, follow it as the Up. diff -r bd22ccd2151e -r 702383d93b75 lisp/info.el --- a/lisp/info.el Sat May 02 16:41:44 1998 +0000 +++ b/lisp/info.el Sun May 03 00:02:10 1998 +0000 @@ -911,10 +911,15 @@ (interactive) (Info-goto-node (Info-extract-pointer "prev[ious]*" "previous"))) -(defun Info-up () - "Go to the superior node of this node." +(defun Info-up (&optional same-file) + "Go to the superior node of this node. +If SAME-FILE is non-nil, do not move to a different Info file." (interactive) - (Info-goto-node (Info-extract-pointer "up")) + (let ((node (Info-extract-pointer "up"))) + (and same-file + (string-match "^(" node) + (error "Up node is in another Info file")) + (Info-goto-node node)) (Info-restore-point Info-history)) (defun Info-last () @@ -1277,7 +1282,7 @@ (interactive) (cond ((Info-no-error (Info-next-menu-item))) ((Info-no-error (Info-next))) - ((Info-no-error (Info-up)) + ((Info-no-error (Info-up t)) ;; Since we have already gone thru all the items in this menu, ;; go up to the end of this node. (goto-char (point-max)) @@ -1302,7 +1307,9 @@ ;; so we can scroll back through it. (goto-char (point-max)))) (recenter -1)) - ((Info-no-error (Info-prev)) + ((and (not (equal (Info-extract-pointer "up") + (Info-extract-pointer "prev")))) + (Info-no-error (Info-prev)) (goto-char (point-max)) (while (Info-no-error (Info-last-menu-item) @@ -1310,7 +1317,7 @@ ;; so we can scroll back through it. (goto-char (point-max)))) (recenter -1)) - ((Info-no-error (Info-up)) + ((Info-no-error (Info-up t)) (goto-char (point-min)) (or (search-forward "\n* Menu:" nil t) (goto-char (point-max))))