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

Commit 2b8b819f 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
parent c57da630
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)