Function: Info-last-preorder

Info-last-preorder is an interactive and byte-compiled function defined in info.el.gz.

Signature

(Info-last-preorder)

Documentation

Go to the last node, popping up a level if there is none.

Key Bindings

Source Code

;; Defined in /usr/src/emacs/lisp/info.el.gz
(defun Info-last-preorder ()
  "Go to the last node, popping up a level if there is none."
  (interactive nil Info-mode)
  (cond ((and Info-scroll-prefer-subnodes
	      (Info-no-error
	       (Info-last-menu-item)
	       ;; If we go down a menu item, go to the end of the node
	       ;; so we can scroll back through it.
	       (goto-char (point-max))))
	 ;; Keep going down, as long as there are nested menu nodes.
	 (let ((old-history Info-history))
	   (while (Info-no-error
		   (Info-last-menu-item)
		   ;; If we go down a menu item, go to the end of the node
		   ;; so we can scroll back through it.
		   (goto-char (point-max))))
	   (if Info-history-skip-intermediate-nodes
	       (setq Info-history old-history)))
	 (recenter -1))
	((and (Info-no-error (Info-extract-pointer "prev"))
	      (not (equal (Info-extract-pointer "up")
			  (Info-extract-pointer "prev"))))
	 (Info-no-error (Info-prev))
	 (goto-char (point-max))
	 (let ((old-history Info-history))
	   (while (Info-no-error
		   (Info-last-menu-item)
		   ;; If we go down a menu item, go to the end of the node
		   ;; so we can scroll back through it.
		   (goto-char (point-max))))
	   (if Info-history-skip-intermediate-nodes
	       (setq Info-history old-history)))
	 (recenter -1))
	((Info-no-error (Info-up t))
	 (goto-char (point-min))
	 (let ((case-fold-search t))
	   (or (search-forward "\n* Menu:" nil t)
	       (goto-char (point-max)))))
	(t (user-error "No previous nodes"))))