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

From: Eli Zaretskii <[email-masked]>
Date: Mon, 17 Feb 2020 21:24:03 +0200

> Cc: [email-masked]
> From: Raphael 'kena' Poss <[email-masked]>
> Date: Mon, 17 Feb 2020 13:37:07 -0500
> 
> On 17-02-2020 12:30, Eli Zaretskii wrote:
> > So this limitation is not
> > really arbitrary, and can only be lifted by a thorough redesign of how
> > the display engine traverses the text it is about to display, and what
> > it does when it meets a composition that crosses face boundaries.
> 
> 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).

> 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.