Subject: Re: bug#39390: 28.0.50; prettify-symbols-mode confuses display when start/end faces are different

From: Raphael 'kena' Poss <[email-masked]>
Date: Mon, 17 Feb 2020 14:28:09 -0500

On 17-02-2020 14:24, Eli Zaretskii wrote:

>> My humble opinion on this is that either the compose function should
>> report an exception / error, or pick some arbitrary behavior (e.g. just
>> use the 1st face for the entire substitution) and use that.
> 
> We cannot raise an exception inside redisplay, because that would
> produce an infinite sequence of error messages (each error message
> requires a redisplay cycle -- to display the message -- which then
> again raises the same exception).

Yes I understand that but I was thinking that `compose-region` would be
the place to check validity.

>> It seems strange to me to accept the current non-deterministic,
>> display-corrupting behavior as a reasonable alternative.
> 
> We are talking about 2 different things.  I was talking about
> composing characters across face changes, whereas you were talking
> about handling invalid composition rules, such as the one you tried to
> use.

Look there is nothing else that determines what is "valid" and "invalid"
than what the docs say and what emacs allow me to configure. At this
point neither the doc of `compose-region` nor its code prevent me from
using this configuration, so from the user's perspective (mine) the
configuration is valid -- and instead I find a bug in the redisplay code.

If you want to hold a position that the configuration is invalid, Emacs
(or some function) needs to be first taught to refuse it.

Meanwhile if the configuration can be deemed valid but with reduced
functionality (as in, the behavior is limited to only use one face, the
first one found in the composition), that could also be documented.

-- 
Raphael 'kena' Poss