Function: nxml-backward-single-paragraph
nxml-backward-single-paragraph is a byte-compiled function defined in
nxml-mode.el.gz.
Signature
(nxml-backward-single-paragraph)
Documentation
Move backward over a single paragraph.
Return nil at start of buffer, t otherwise.
Source Code
;; Defined in /usr/src/emacs/lisp/nxml/nxml-mode.el.gz
(defun nxml-backward-single-paragraph ()
"Move backward over a single paragraph.
Return nil at start of buffer, t otherwise."
(let* ((token-end (nxml-token-before))
(offset (- token-end (point)))
(last-tag-pos xmltok-start)
pos had-data last-data-pos)
(goto-char token-end)
(unless (setq pos (nxml-paragraph-start-pos nil offset))
(setq had-data (nxml-token-contains-data-p nil offset))
(goto-char xmltok-start)
(while (and (not pos) (< (point-min) (point)))
(cond ((search-backward "<" nxml-prolog-end t)
(nxml-move-outside-backwards)
(save-excursion
(while (< (point) last-tag-pos)
(xmltok-forward)
(when (and (not had-data) (nxml-token-contains-data-p))
(setq pos nil)
(setq last-data-pos xmltok-start))
(let ((tem (nxml-paragraph-start-pos had-data 0)))
(when tem (setq pos tem)))))
(when (and (not had-data) last-data-pos (not pos))
(setq had-data t)
(save-excursion
(while (< (point) last-data-pos)
(xmltok-forward))
(let ((tem (nxml-paragraph-start-pos had-data 0)))
(when tem (setq pos tem)))))
(setq last-tag-pos (point)))
(t (goto-char (point-min))))))
(when pos (goto-char pos))))