Subject: bug#63731: [PATCH] Support Emoji Variation Sequence 16 (FE0F) where appropriate

From: Robert Pluim <[email-masked]>
Date: Fri, 26 May 2023 18:24:02 +0200

>>>>> On Fri, 26 May 2023 18:52:22 +0300, Eli Zaretskii <[email-masked]> said:

    >> From: Robert Pluim <[email-masked]>
    >> Cc: [email-masked],  [email-masked]
    >> Date: Fri, 26 May 2023 17:25:24 +0200
    >> 
    Eli> Or are you saying that without including VS-15, CHAR+FE0E is not
    Eli> displayed using its text representation?
    >> 
    >> Not quite. If I donʼt have compose-gstring-for-graphic for VS-15, no
    >> composition occurs for CHAR+FE0E. With my change youʼll get
    >> composition, but itʼs still not 100% correct: CHAR+FE0E when CHAR is a
    >> member of the emoji script will use emoji presentation, not text, but
    >> the extra empty box will not show, so itʼs still an improvement.

    Eli> OK.  And what about CHAR+FE0E when CHAR is not an Emoji?

Then you get the (composed) text presentation (and the composed emoji
presentation when itʼs CHAR+FE0F).

    Eli> Anyway, I think you should install the patch on emacs-29, and we
    Eli> should then try to fix the text-representation bug with VS-15 on
    Eli> master.  (I guess it requires a change to font.c or something?)

It requires something that answers the question "what font would we
use for this codepoint if it was not an emoji?". Maybe we can have a
separate fontset that pretends that the emoji script is equivalent to
symbol? Or invent some kind of 'text-presentation-font' property to
put somewhere?

    Eli> Did you test the proposed change with the admin/emoji-*.txt files, to
    Eli> make sure they all still display OK?
    >> 
    >> Yes. Iʼve also got a change that makes Emoji_Keycap_Sequence work, but
    >> I think we can leave that for master.

    Eli> Depends on the solution, I guess.  Isn't it just a change to the
    Eli> VS-16's entry in composition-function-table?  Or maybe a change in the
    Eli> #x20e3's entry?  (Did we discus the Emoji_Keycap_Sequence case before?)

Itʼs a change to the VS-16 entry. We did discuss it before, and
decided to put it aside because the solutions all involved adding
composition-function-table entries for 0-9 or similar. I donʼt
remember why we didnʼt consider adding to VS-16ʼs entry.

Iʼll do some more testing, and post a final version hopefully this
weekend sometime.

Robert
--