Subject: Re: bug#41454: 28.0.50; [".+" 0 font-shape-gstring] composition rule breaks paren highlighting

From: Eli Zaretskii <[email-masked]>
Date: Mon, 01 Jun 2020 19:17:30 +0300

> From: Pip Cet <[email-masked]>
> Date: Sun, 31 May 2020 19:58:09 +0000
> Cc: [email-masked]
> 
> > On second thought, I'm not sure this is the right place to look at.
> > It could be fill_gstring_glyph_string and BUILD_GSTRING_GLYPH_STRING
> > instead (and the respective *term.c display functions).
> 
> Thanks for the hint! You were absolutely correct.
> 
> diff --git a/src/xdisp.c b/src/xdisp.c
> index db0ec68315..989958fa11 100644
> --- a/src/xdisp.c
> +++ b/src/xdisp.c
> @@ -27698,6 +27698,7 @@ fill_gstring_glyph_string (struct glyph_string *s, int face_id,
>    while (glyph < last
>  	 && glyph->u.cmp.automatic
>  	 && glyph->u.cmp.id == s->cmp_id
> +	 && glyph->face_id == face_id
>  	 && s->cmp_to == glyph->slice.cmp.from)
>      {
>        s->width += glyph->pixel_width;

LGTM, thanks.

(Note that the sibling function fill_composite_glyph_string already
does that for static compositions.)