Function: texinfo-sequential-node-update

texinfo-sequential-node-update is an autoloaded, interactive and byte-compiled function defined in texnfo-upd.el.gz.

Signature

(texinfo-sequential-node-update &optional REGION-P)

Documentation

Update one node (or many) in a Texinfo file with sequential pointers.

This function causes the Next or Previous pointer to point to the immediately preceding or following node, even if it is at a higher or lower hierarchical level in the document. Continually pressing n or p takes you straight through the file.

Without any prefix argument, update the node in which point is located. Non-nil argument (prefix, if interactive) means update the nodes in the marked region.

This command makes it awkward to navigate among sections and subsections; it should be used only for those documents that are meant to be read like a novel rather than a reference, and for which the Info g* command is inadequate.

Key Bindings

Source Code

;; Defined in /usr/src/emacs/lisp/textmodes/texnfo-upd.el.gz
;;; Updating nodes sequentially
;; These sequential update functions insert `Next' or `Previous'
;; pointers that point to the following or preceding nodes even if they
;; are at higher or lower hierarchical levels.  This means that if a
;; section contains one or more subsections, the section's `Next'
;; pointer will point to the subsection and not the following section.
;; (The subsection to which `Next' points will most likely be the first
;; item on the section's menu.)

;;;###autoload
(defun texinfo-sequential-node-update (&optional region-p)
  "Update one node (or many) in a Texinfo file with sequential pointers.

This function causes the `Next' or `Previous' pointer to point to the
immediately preceding or following node, even if it is at a higher or
lower hierarchical level in the document.  Continually pressing `n' or
`p' takes you straight through the file.

Without any prefix argument, update the node in which point is located.
Non-nil argument (prefix, if interactive) means update the nodes in the
marked region.

This command makes it awkward to navigate among sections and
subsections; it should be used only for those documents that are meant
to be read like a novel rather than a reference, and for which the
Info `g*' command is inadequate."

  (interactive "P")
  (if (not region-p)
      ;; update a single node
      (let ((auto-fill-function nil))
	(if (not (re-search-backward "^@node" (point-min) t))
	    (error "Node line not found before this position"))
	(texinfo-sequentially-update-the-node)
	(message
	 "Done...sequentially updated the node .  You may save the buffer."))
    ;; else
    (let ((auto-fill-function nil)
	  (beginning (region-beginning))
	  (end (region-end)))
      (if (= end beginning)
	  (error "Please mark a region"))
      (save-restriction
	(narrow-to-region beginning end)
	(goto-char beginning)
	(push-mark (point) t)
	(while (re-search-forward "^@node" (point-max) t)
	  (beginning-of-line)
	  (texinfo-sequentially-update-the-node))
	(message
	 "Done...updated the nodes in sequence.  You may save the buffer.")))))