GNU bug report logs - #73752
29.4; Ligatures are randomly rendered with extra spaces

Previous Next

Package: emacs;

Reported by: xuan <at> xlk.me

Date: Fri, 11 Oct 2024 21:40:02 UTC

Severity: normal

Merged with 54646

Found in versions 29.0.50, 29.4

Fixed in version 30.1

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


Message #110 received at 73752 <at> debbugs.gnu.org (full text, mbox):

From: Visuwesh <visuweshm <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: luangruo <at> yahoo.com, 73752 <at> debbugs.gnu.org, xuan <at> xlk.me
Subject: Re: bug#73752: 29.4; Ligatures are randomly rendered with extra spaces
Date: Tue, 29 Oct 2024 19:24:26 +0530
[Message part 1 (text/plain, inline)]
[செவ்வாய் அக்டோபர் 29, 2024] Eli Zaretskii wrote:

>> From: Visuwesh <visuweshm <at> gmail.com>
>> Cc: luangruo <at> yahoo.com,  73752 <at> debbugs.gnu.org,  xuan <at> xlk.me
>> Date: Tue, 29 Oct 2024 16:29:48 +0530
>> 
>> >> Is this hash dependent on the font driver?
>> >
>> > No.  Only the font used for the composed characters is recorded, not
>> > the font backend which opened it.  But fonts are managed by the font
>> > backend, so maybe there's some leakage by that way.
>> 
>> OK, thanks.  I wonder if we could compare the value returned by
>> font-info if something has gone wrong with the font object used to
>> compute the hash for the glyph?  
>
> That would not be the first thing I'd look at.  According to the
> screenshots, it is more likely that a wrong cache entry is used for a
> composition, which uses the "wrong" font variant.  IOW, the font used
> itself is fine, it just is not the font that's supposed to be used
> with the composed characters in that place.
>
> So I would first look at the font object stored in the header of the
> cached composition.
>
>> > Btw, how frequently do you use different frames, 
>> 
>> Quite often, I would say.  I usually have two frames but it can go
>> upwards of 5 to 6 if I have a mouse attached to my laptop.
>> 
>> > and how likely are you to have different definitions for the same
>> > faces on different frames in the same Emacs session at the same time?
>> 
>> I don't quite understand this question.  Are you asking if I have any
>> "frame-specific" face attributes i.e., non-nil FRAME argument in
>> set-face-attribute?
>
> Yes.
>
>> If so, no.
>
> OK, so one more theory eats dust (we don't record the frame in the
> composition cache).
>
>> > The only way I see to investigate this is to wait for this to happen,
>> > then attach GDB to Emacs and look at the problematic compositions in
>> > the cache, comparing them to the corresponding compositions in a fresh
>> > Emacs session.  I can tell what to look for with GDB, if that helps.
>> 
>> That would help.  But given how hard it is to reproduce this issue on my
>> end, I don't know when I can get back...
>
> It would not be useful for me to give instructions before you actually
> hit the problem (because the code will change until then), so if you
> want to try this, get back to me when you do reproduce the problem
> (and then attach GDB and leave the Emacs session under GDB for any
> investigations I'd ask you to do).

I seem to have run into the issue.  The attached images
"cascadia-code-bold-15-good" and "-bad.png" are the desired and
misaligned composite text of "-->" rendered in Cascadia Code bold 15
font.  The same text is composed fine with Cascadia Code bold 17.

[cascadia-bold-15-good.png (image/png, attachment)]
[cascadia-bold-15-bad.png (image/png, attachment)]

This bug report was last modified 251 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.