Subject: bug#54646: 29.0.50; set-fontset-font and font clipping issues

From: Eli Zaretskii <[email-masked]>
Date: Sun, 03 Apr 2022 13:06:49 +0300

> From: Visuwesh <[email-masked]>
> Cc: [email-masked],  [email-masked]
> Date: Sun, 03 Apr 2022 14:45:35 +0530
> 
> > It's hard to understand what you printed out, or where is the
> > difference.  It is best to print only the data for the characters for
> > which you see display problems, because all the rest is just clutter.
> > And in any case, please print the character with the data, otherwise
> > it is impossible to know what to compare.
> 
> I used the %c printf format control to print the character in
> question---chars[char_idx].  comment-section-good is the "good" case and
> comment-section-bad is the "bad" case.  The URL I browsed in eww is
> https://www.dinamalar.com/news_detail.asp?id=2998931 (isearch for
> "Suppon" to get to the comment section).  Unfortunately, all the
> characters are in raw bytes so if there's a better to print the
> characters, please let me know.

The %c format is only good for single-byte characters, which these
ones aren't.  Please use %x to print them (in hex).

Also, I think printing everything is too much, and doesn't allow to
focus.  Please print only when the character's code is one of those
involved in the problematic display.  "C-u C-x =" will tell you the
codepoints of the characters involved: the one that is displayed
incorrectly and the ones surrounding it: please add an 'if' clause
there which would only print the metrics data for the characters in
which we are interested.  Something like this:

  if (chars[char_idx] == CHAR1
      || chars[char_idx] == CHAR2
      || chars[char_idx] == CHAR3)
    printf (...

where CHAR1, CHAR2, and CHAR3 are the characters involved in the
problematic display, according to "C-u C-x =".

May I suggest that you show me the code you add to hbfont.c before you
run it?  This would avoid unnecessary iterations for you.

Thanks.