Subject: bug#14645: Keep highlighting face foreground

From: Lars Ingebrigtsen <[email-masked]>
Date: Thu, 13 Aug 2020 13:35:13 +0200

Juri Linkov <[email-masked]> writes:

> I was going to propose a similar change to use `add-face-text-property'
> in hi-lock, but it turned out to be much simpler because hi-lock
> is based on font-lock that already has `font-lock-prepend-text-property'
> that does the same:
>
> === modified file 'lisp/hi-lock.el'
> --- lisp/hi-lock.el	2013-06-03 08:51:50 +0000
> +++ lisp/hi-lock.el	2013-06-19 23:12:05 +0000
> @@ -715,7 +690,7 @@ (defun hi-lock-set-pattern (regexp face)
>    "Highlight REGEXP with face FACE."
>    ;; Hashcons the regexp, so it can be passed to remove-overlays later.
>    (setq regexp (hi-lock--hashcons regexp))
> -  (let ((pattern (list regexp (list 0 (list 'quote face) t))))
> +  (let ((pattern (list regexp (list 0 (list 'quote face) 'prepend))))

If I'm reading this correctly, something similar has been added in the
intervening years:

  (let ((pattern (list (lambda (limit)
                         (let ((case-fold-search case-fold)
                               (search-spaces-regexp spaces-regexp))
                           (re-search-forward regexp limit t)))
                       (list subexp (list 'quote face) 'prepend)))

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no