Subject: Re: bug#55768: 26.3; isearch highlighting in dired

From: Juri Linkov <[email-masked]>
Date: Tue, 28 Jun 2022 20:37:06 +0300

> In other words, this:
>
> 	;; If the following character is currently invisible,
> 	;; skip all characters with that same `invisible' property value.
> 	;; Do that over and over.
> 	(while (and (< (point) end) (invisible-p (point)))
> 	  (if (invisible-p (get-text-property (point) 'invisible))
>
> Is fine, but
>
> (eq (invisible-p (point))
>     (invisible-p (get-text-property (point) 'invisible)))
>
> is always true.

I don't see how it's always true:

1. (invisible-p (point))
   checks invisibility of both: text properties and overlays.

2. (invisible-p (get-text-property (point) 'invisible))
   checks invisibility of text properties only.

3. (invisible-p (overlay-get o 'invisible))
   checks invisibility of overlays only.

There is a need for a separate check because overlays
can be opened, whereas text properties can't.