Function: texinfo-format-separate-node
texinfo-format-separate-node is a byte-compiled function defined in
texinfmt.el.gz.
Signature
(texinfo-format-separate-node)
Documentation
Format footnote in Separate node style, with notes in own node.
The node is constructed automatically.
Source Code
;; Defined in /usr/src/emacs/lisp/textmodes/texinfmt.el.gz
(defun texinfo-format-separate-node ()
"Format footnote in Separate node style, with notes in own node.
The node is constructed automatically."
(let* (start
(arg (texinfo-parse-line-arg))
(node-name-beginning
(save-excursion
(re-search-backward
"^File: \\w+\\(\\w\\|\\s_\\|\\.\\|,\\)*[ \t]+Node:")
(match-end 0)))
(node-name
(save-excursion
(buffer-substring-no-properties
(progn (goto-char node-name-beginning) ; skip over node command
(skip-chars-forward " \t") ; and over spaces
(point))
(if (search-forward "," (line-end-position) t) ; bound search
(1- (point))
(end-of-line) (point))))))
(texinfo-discard-command) ; remove or insert whitespace, as needed
(delete-region (save-excursion (skip-chars-backward " \t\n") (point))
(point))
(insert (format " (%d) (*Note %s-Footnotes::)"
texinfo-footnote-number node-name))
(fill-paragraph nil)
(save-excursion
(if (re-search-forward "^@node" nil 'move)
(forward-line -1))
;; two cases: for the first footnote, we must insert a node header;
;; for the second and subsequent footnotes, we need only insert
;; the text of the footnote.
(if (save-excursion
(search-backward
(concat node-name "-Footnotes, Up: ")
node-name-beginning
t))
(progn ; already at least one footnote
(setq start (point))
(insert (format "\n(%d) %s\n" texinfo-footnote-number arg))
(fill-region start (point)))
;; else not yet a footnote
(insert "\n\^_\nFile: " texinfo-format-filename
" Node: " node-name "-Footnotes, Up: " node-name "\n")
(setq start (point))
(insert (format "\n(%d) %s\n" texinfo-footnote-number arg))
(narrow-to-region (save-excursion (goto-char start) (point)) (point))
(fill-region (point-min) (point-max))
(widen)))))