Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0790ac68 authored by Raph Levien's avatar Raph Levien
Browse files

Update lint check to accommodate new emoji sequences

These are not yet ready for updating in the unicode data, so we patch
them in code until they are.

Bug: 30594617
Change-Id: Ib4c8568aa4840341474eb0c0c95674d640473f4d
(cherry picked from commit 2b8b819f)
parent a6ec65ed
Loading
Loading
Loading
Loading
+35 −1
Original line number Diff line number Diff line
@@ -507,12 +507,46 @@ def compute_expected_emoji():
    all_sequences = set()
    all_sequences.update(_emoji_variation_sequences)

    # add zwj sequences not in the current emoji-zwj-sequences.txt
    adjusted_emoji_zwj_sequences = dict(_emoji_zwj_sequences)
    adjusted_emoji_zwj_sequences.update(_emoji_zwj_sequences)
    # single parent families
    additional_emoji_zwj = (
        (0x1F468, 0x200D, 0x1F466),
        (0x1F468, 0x200D, 0x1F467),
        (0x1F468, 0x200D, 0x1F466, 0x200D, 0x1F466),
        (0x1F468, 0x200D, 0x1F467, 0x200D, 0x1F466),
        (0x1F468, 0x200D, 0x1F467, 0x200D, 0x1F467),
        (0x1F469, 0x200D, 0x1F466),
        (0x1F469, 0x200D, 0x1F467),
        (0x1F469, 0x200D, 0x1F466, 0x200D, 0x1F466),
        (0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F466),
        (0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F467),
    )
    # sequences formed from man and woman and optional fitzpatrick modifier
    modified_extensions = (
        0x2696,
        0x2708,
        0x1F3A8,
        0x1F680,
        0x1F692,
    )
    for seq in additional_emoji_zwj:
        adjusted_emoji_zwj_sequences[seq] = 'Emoji_ZWJ_Sequence'
    for ext in modified_extensions:
        for base in (0x1F468, 0x1F469):
            seq = (base, 0x200D, ext)
            adjusted_emoji_zwj_sequences[seq] = 'Emoji_ZWJ_Sequence'
            for modifier in range(0x1F3FB, 0x1F400):
                seq = (base, modifier, 0x200D, ext)
                adjusted_emoji_zwj_sequences[seq] = 'Emoji_ZWJ_Sequence'

    for sequence in _emoji_sequences.keys():
        sequence = tuple(ch for ch in sequence if ch != EMOJI_VS)
        all_sequences.add(sequence)
        sequence_pieces.update(sequence)

    for sequence in _emoji_zwj_sequences.keys():
    for sequence in adjusted_emoji_zwj_sequences.keys():
        sequence = tuple(ch for ch in sequence if ch != EMOJI_VS)
        all_sequences.add(sequence)
        sequence_pieces.update(sequence)