GNU bug report logs - #39799
28.0.50; Most emoji sequences don’t render correctly

Previous Next

Package: emacs;

Reported by: Mike FABIAN <mfabian <at> redhat.com>

Date: Wed, 26 Feb 2020 14:30:03 UTC

Severity: normal

Found in version 28.0.50

Fixed in version 28.1

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Robert Pluim <rpluim <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: rgm <at> gnu.org, 39799 <at> debbugs.gnu.org, mfabian <at> redhat.com
Subject: bug#39799: 28.0.50; Most emoji sequences don’t render correctly
Date: Tue, 21 Sep 2021 16:43:17 +0200
>>>>> On Tue, 21 Sep 2021 17:19:23 +0300, Eli Zaretskii <eliz <at> gnu.org> said:

    >> From: Robert Pluim <rpluim <at> gmail.com>
    >> Cc: Eli Zaretskii <eliz <at> gnu.org>,  rgm <at> gnu.org,  39799 <at> debbugs.gnu.org
    >> Date: Tue, 21 Sep 2021 15:53:52 +0200
    >> 
    Mike> It does work with hb-view.
    >> 
    >> Itʼs a problem with the way we generate the auto composition
    >> sequences. If I remove the ZWJ sequences for eg 1f469, then all the
    >> skin tone sequences for 1f469 work

    Eli> Not sure I understand.  The sequence U+1F4F9,U+1F3FD indeed does not
    Eli> appear in emoji-zwj.el, but it does appear in emoji-sequences.txt.
    Eli> However, the string "👩🏽" doesn't match the regexp in the
    Eli> composition-function-table's slot for U+1F4F9.  Why is this?

Because for skin tones we index on the modifier, and use lookback:

;; Skin tones
(set-char-table-range composition-function-table
                      '(#x1F3FB . #x1F3FF)
                      (nconc (char-table-range composition-function-table '(#x1F3FB . #x1F3FF))
                             (list (vector ".[\U0001F3FB-\U0001F3FF]"
                                           1
                                    'compose-gstring-for-graphic))))

Iʼve just tried adding "\N{U+1F469}\N{U+1F3FE}" to the composition
function table regexp for U+1F469 manually, and now I get correct
composition. That means we could process the
RGI_Emoji_Modifier_Sequence entries from emoji-sequences.txt with
emoji-zwj.awk and add them, indexed on the base character (and remove
the above code).

Iʼd still like to understand where things are going wrong though.

Robert
-- 




This bug report was last modified 3 years and 256 days ago.

Previous Next


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