Subject: bug#45557: 27.1; Incorrect rendering of COMBINING OVERLINE

From: Eli Zaretskii <[email-masked]>
Date: Wed, 06 Jan 2021 17:10:45 +0200

> Date: Wed, 06 Jan 2021 08:08:03 +0530 (IST)
> From: Madhu <[email-masked]>
> 
> 1. emacs -Q -fn Monaco ~/test.txt
> ---------------------
> M-: auto-composition-mode ; => t.
> 
> This always gets the first line "wrong":
> 
> LATIN SMALL LETTER X
>               display: by this font (glyph code)
>     ftcrhb:-APPL-Monaco-normal-normal-normal-*-22-*-*-*-*-0-iso10646-1 (#x5B)
> +
> COMBINING OVERLINE
>               display: by this font (glyph code)
>     ftcrhb:-SIL -Charis SIL-normal-normal-normal-*-22-*-*-*-*-0-iso10646-1 (#x8C
> 
> Those are *not* composeḍ.

They are not composed because Emacs didn't find a glyph in the Monaco
font for the COMBINING OVERLINE character.  Emacs only composes
characters if they have glyphs in the same font.

> 2. M-: (set-frame-font "JuliaMonoLatin-14:hintstyle=none" nil nil)
> ----------------
> 
> - Everything should look the same except the first line is rendered in
> Julia mono. The x and the overbar are still not composed.

For the same reason.

(On my system, with a different font, they _are_ composed.)

> 3.  M-x auto-composition-mode  ; to toggle
> ----------------
> ;; Auto-Composition mode disabled in current buffer
> M-: auto-composition-mode ; => nil
> 
> and voilà! Now the first line is rendered "correctly" with x and
> overbar composed and the second line is now incorrect: the k + s
> appear decomposed.

This can only happen if some other software involved in the display
(Cairo?) composes them.  In any case, this is not an Emacs issue.

> 4. emacs -Q -fn JuliaMono test.txt
> 
> Then it all works as I think it was intended.

Which might mean the hintstyle=none may be a factor here?

Anyway, I see no Emacs problems in your description, only font
problems.  The text you sent is displayed correctly on my system, both
of its lines.