Function: woman0-roff-buffer

woman0-roff-buffer is a byte-compiled function defined in woman.el.gz.

Signature

(woman0-roff-buffer FROM)

Documentation

Process conditional-type requests and user-defined macros.

Start at FROM and re-scan new text as appropriate.

Source Code

;; Defined in /usr/src/emacs/lisp/woman.el.gz
(defun woman0-roff-buffer (from)
  "Process conditional-type requests and user-defined macros.
Start at FROM and re-scan new text as appropriate."
  (goto-char from)
  (let ((woman0-if-to (make-marker))
	woman-request woman0-macro-alist
	(woman0-search-regex-start woman0-search-regex-start)
	(woman0-search-regex
	 (concat woman0-search-regex-start woman0-search-regex-end))
	processed-first-hunk
	woman0-rename-alist)
    (set-marker-insertion-type woman0-if-to t)
    (while (re-search-forward woman0-search-regex nil t)
      (setq woman-request (match-string 1))

      ;; Process escape sequences prior to first request (Bug#7843).
      (unless processed-first-hunk
	(setq processed-first-hunk t)
	(let ((process-escapes-to-marker (point-marker)))
	  (set-marker-insertion-type process-escapes-to-marker t)
	  (save-match-data
	    (save-excursion
	      (goto-char from)
	      (woman2-process-escapes process-escapes-to-marker)))))

      (cond ((string= woman-request "ig") (woman0-ig))
	    ((string= woman-request "if") (woman0-if "if"))
	    ((string= woman-request "ie") (woman0-if "ie"))
	    ((string= woman-request "el") (woman0-el))
	    ((string= woman-request "so") (woman0-so))
	    ((string= woman-request "rn") (woman0-rn))
	    ((string= woman-request "de") (woman0-de))
	    ((string= woman-request "am") (woman0-de 'append))
	    (t                      (woman0-macro woman-request))))
    (set-marker woman0-if-to nil)
    (woman0-rename)
    ;; Should now re-run `woman0-roff-buffer' if any renaming was
    ;; done, but let's just hope this is not necessary for now!
    ))