Function: font-lock-fontify-anchored-keywords
font-lock-fontify-anchored-keywords is a byte-compiled function
defined in font-lock.el.gz.
Signature
(font-lock-fontify-anchored-keywords KEYWORDS LIMIT)
Documentation
Fontify according to KEYWORDS until LIMIT.
KEYWORDS should be of the form MATCH-ANCHORED, see font-lock-keywords,
LIMIT can be modified by the value of its PRE-MATCH-FORM.
Source Code
;; Defined in /usr/src/emacs/lisp/font-lock.el.gz
(defsubst font-lock-fontify-anchored-keywords (keywords limit)
"Fontify according to KEYWORDS until LIMIT.
KEYWORDS should be of the form MATCH-ANCHORED, see `font-lock-keywords',
LIMIT can be modified by the value of its PRE-MATCH-FORM."
(let ((matcher (nth 0 keywords)) (lowdarks (nthcdr 3 keywords)) highlights
(lead-start (match-beginning 0))
;; Evaluate PRE-MATCH-FORM.
(pre-match-value (eval (nth 1 keywords) t)))
;; Set LIMIT to value of PRE-MATCH-FORM or the end of line.
(if (not (and (numberp pre-match-value) (> pre-match-value (point))))
(setq limit (line-end-position))
(setq limit pre-match-value)
(when (and font-lock-multiline (>= limit (line-beginning-position 2)))
;; this is a multiline anchored match
;; (setq font-lock-multiline t)
(put-text-property (if (= limit (line-beginning-position 2))
(1- limit)
(min lead-start (point)))
limit
'font-lock-multiline t)))
(save-match-data
;; Find an occurrence of `matcher' before `limit'.
(while (and (< (point) limit)
(if (stringp matcher)
(re-search-forward matcher limit t)
(funcall matcher limit)))
;; Apply each highlight to this instance of `matcher'.
(setq highlights lowdarks)
(while highlights
(font-lock-apply-highlight (car highlights))
(setq highlights (cdr highlights)))))
;; Evaluate POST-MATCH-FORM.
(eval (nth 2 keywords) t)))