Function: texinfo-make-menu

texinfo-make-menu is an autoloaded, interactive and byte-compiled function defined in texnfo-upd.el.gz.

Signature

(texinfo-make-menu &optional BEGINNING END)

Documentation

Without any prefix argument, make or update a menu.

Make the menu for the section enclosing the node found following point.

A prefix argument means make or update menus for nodes within or part of the marked region.

Whenever a menu exists, and is being updated, the descriptions that are associated with node names in the pre-existing menu are incorporated into the new menu.

Leaves trailing whitespace in a menu that lacks descriptions, so descriptions will format well. In general, a menu should contain descriptions, because node names and section titles are often too short to explain a node well.

Key Bindings

Source Code

;; Defined in /usr/src/emacs/lisp/textmodes/texnfo-upd.el.gz
;;;###autoload
(defun texinfo-make-menu (&optional beginning end)
  "Without any prefix argument, make or update a menu.
Make the menu for the section enclosing the node found following point.

A prefix argument means make or update menus
for nodes within or part of the marked region.

Whenever a menu exists, and is being updated, the descriptions that
are associated with node names in the pre-existing menu are
incorporated into the new menu.

Leaves trailing whitespace in a menu that lacks descriptions, so
descriptions will format well.  In general, a menu should contain
descriptions, because node names and section titles are often too
short to explain a node well."

  (interactive
   (if prefix-arg
       (list (point) (mark))))
  (if (null beginning)
      (let ((level (texinfo-hierarchic-level)))
	(texinfo-make-one-menu level)
	(message "Menu updated"))
    ;; else
    (message "Making or updating menus in %s... " (buffer-name))
    (save-excursion
      (goto-char (min beginning end))
      ;; find section type following point
      (let ((level (texinfo-hierarchic-level))
	    (region-end-marker (make-marker)))
	(set-marker region-end-marker (max beginning end))
	(save-restriction
	  (widen)

	  (while (texinfo-find-lower-level-node
		  level (marker-position region-end-marker))
	    (setq level (texinfo-hierarchic-level)) ; new, lower level
	    (texinfo-make-one-menu level))

	  (while (and (< (point) (marker-position region-end-marker))
		      (texinfo-find-higher-level-node
		       level (marker-position region-end-marker)))
	    (setq level (texinfo-hierarchic-level))
	    ;; Don't allow texinfo-find-higher-level-node
	    ;; to find the same node again.
	    (forward-line 1)
	    (while (texinfo-find-lower-level-node
		    level (marker-position region-end-marker))
	      (setq level (texinfo-hierarchic-level)) ; new, lower level
	      (texinfo-make-one-menu level))))))
    (message "Making or updating menus in %s...done" (buffer-name))))