Subject: bug#39799: 28.0.50; Most emoji sequences don’t render correctly

From: Robert Pluim <[email-masked]>
Date: Fri, 28 Feb 2020 22:47:36 +0100

>>>>> On Fri, 28 Feb 2020 23:02:12 +0200, Eli Zaretskii <[email-masked]> said:

    >> Date: Fri, 28 Feb 2020 22:25:44 +0200
    >> From: Eli Zaretskii <[email-masked]>
    >> Cc: [email-masked]
    >> 
    >> Hmm... it's possible I was confused, and the functions I mentioned are
    >> unrelated to variation selectors.  To see if that's so, try to
    >> configure composition-function-table to display such sequences as
    >> composed characters, and see what happens when you use a proper font
    >> (e.g., the one with which Gedit displays the variations).

    Eli> Looking into this some more reveals that we already have
    Eli> composition-function-table set up for variation selectors, see the end
    Eli> of lisp/language/japanese.el.  Not sure why it's in japanese.el, but
    Eli> the code doesn't seem to be specific to Japanese characters, unless
    Eli> I'm missing something.  So some debugging is required to understand
    Eli> why we don't display sequences with variation selectors as intended.
    Eli> Maybe DejaVu Sans doesn't support that?  What if you try

    Eli>   emacs -Q -fn Noto Color Emoji"

    Eli> does Emacs built with HarfBuzz then display the variation sequences as
    Eli> expected?

-fn "Noto Color Emoji" doesnʼt change the default font for me for some
 reason, but if I change the font after startup then those sequences
 display correctly.

  (char-table-range composition-function-table #xFE0F)
=> ([".." 1 compose-gstring-for-variation-glyph])

and #xFE0F is always composable according to composite.c, so I donʼt
understand why composing only works with Noto Color Emoji. Or does the
font need specific support for it?

Robert