Function: rng-mark-error
rng-mark-error is a byte-compiled function defined in rng-valid.el.gz.
Signature
(rng-mark-error MESSAGE BEG END)
Source Code
;; Defined in /usr/src/emacs/lisp/nxml/rng-valid.el.gz
(defun rng-mark-error (message beg end)
(unless rng-parsing-for-state
(let ((overlays (overlays-in beg end)))
(while (and overlays message)
(let ((o (car overlays)))
(when (and (eq (overlay-get o 'category) 'rng-error)
(= (overlay-start o) beg)
(= (overlay-end o) end))
(overlay-put o
'help-echo
(concat (overlay-get o 'help-echo)
"\n"
message))
(setq message nil)))
(setq overlays (cdr overlays))))
(when message
(let ((inhibit-quit t))
(setq rng-error-count (1+ rng-error-count))
(let ((overlay
(make-overlay beg end nil t
;; Need to make the rear delimiter advance
;; with the front delimiter when the overlay
;; is empty, otherwise the front delimiter
;; will move past the rear delimiter.
(= beg end))))
;; Ensure when we have two overlapping messages, the help-echo
;; of the one that starts first is shown
(overlay-put overlay 'priority beg)
(overlay-put overlay 'category 'rng-error)
(overlay-put overlay 'help-echo message))))))