mirror of
https://github.com/Nheko-Reborn/nheko.git
synced 2024-10-30 09:30:47 +03:00
fix naming issues with emoji, edit how codegen works
This commit is contained in:
parent
f465a5b52f
commit
a6090f4a1c
12 changed files with 1268 additions and 457 deletions
|
@ -357,6 +357,8 @@ set(SRC_FILES
|
|||
# Emoji
|
||||
src/emoji/Provider.cpp
|
||||
src/emoji/Provider.h
|
||||
src/emoji/Emoji.cpp
|
||||
src/emoji/Emoji.h
|
||||
|
||||
# Timeline
|
||||
src/timeline/CommunitiesModel.cpp
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
# emoji-test.txt
|
||||
# Date: 2022-08-12, 20:24:39 GMT
|
||||
# © 2022 Unicode®, Inc.
|
||||
# Date: 2023-06-05, 21:39:54 GMT
|
||||
# © 2023 Unicode®, Inc.
|
||||
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
|
||||
# For terms of use, see https://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Emoji Keyboard/Display Test Data for UTS #51
|
||||
# Version: 15.0
|
||||
# Version: 15.1
|
||||
#
|
||||
# For documentation and usage, see https://www.unicode.org/reports/tr51
|
||||
#
|
||||
|
@ -93,6 +93,10 @@
|
|||
1F62E 200D 1F4A8 ; fully-qualified # 😮💨 E13.1 face exhaling
|
||||
1F925 ; fully-qualified # 🤥 E3.0 lying face
|
||||
1FAE8 ; fully-qualified # 🫨 E15.0 shaking face
|
||||
1F642 200D 2194 FE0F ; fully-qualified # 🙂↔️ E15.1 head shaking horizontally
|
||||
1F642 200D 2194 ; minimally-qualified # 🙂↔ E15.1 head shaking horizontally
|
||||
1F642 200D 2195 FE0F ; fully-qualified # 🙂↕️ E15.1 head shaking vertically
|
||||
1F642 200D 2195 ; minimally-qualified # 🙂↕ E15.1 head shaking vertically
|
||||
|
||||
# subgroup: face-sleepy
|
||||
1F60C ; fully-qualified # 😌 E0.6 relieved face
|
||||
|
@ -244,8 +248,8 @@
|
|||
1F4AD ; fully-qualified # 💭 E1.0 thought balloon
|
||||
1F4A4 ; fully-qualified # 💤 E0.6 ZZZ
|
||||
|
||||
# Smileys & Emotion subtotal: 180
|
||||
# Smileys & Emotion subtotal: 180 w/o modifiers
|
||||
# Smileys & Emotion subtotal: 184
|
||||
# Smileys & Emotion subtotal: 184 w/o modifiers
|
||||
|
||||
# group: People & Body
|
||||
|
||||
|
@ -2065,6 +2069,66 @@
|
|||
1F6B6 1F3FE 200D 2640 ; minimally-qualified # 🚶🏾♀ E4.0 woman walking: medium-dark skin tone
|
||||
1F6B6 1F3FF 200D 2640 FE0F ; fully-qualified # 🚶🏿♀️ E4.0 woman walking: dark skin tone
|
||||
1F6B6 1F3FF 200D 2640 ; minimally-qualified # 🚶🏿♀ E4.0 woman walking: dark skin tone
|
||||
1F6B6 200D 27A1 FE0F ; fully-qualified # 🚶➡️ E15.1 person walking facing right
|
||||
1F6B6 200D 27A1 ; minimally-qualified # 🚶➡ E15.1 person walking facing right
|
||||
1F6B6 1F3FB 200D 27A1 FE0F ; fully-qualified # 🚶🏻➡️ E15.1 person walking facing right: light skin tone
|
||||
1F6B6 1F3FB 200D 27A1 ; minimally-qualified # 🚶🏻➡ E15.1 person walking facing right: light skin tone
|
||||
1F6B6 1F3FC 200D 27A1 FE0F ; fully-qualified # 🚶🏼➡️ E15.1 person walking facing right: medium-light skin tone
|
||||
1F6B6 1F3FC 200D 27A1 ; minimally-qualified # 🚶🏼➡ E15.1 person walking facing right: medium-light skin tone
|
||||
1F6B6 1F3FD 200D 27A1 FE0F ; fully-qualified # 🚶🏽➡️ E15.1 person walking facing right: medium skin tone
|
||||
1F6B6 1F3FD 200D 27A1 ; minimally-qualified # 🚶🏽➡ E15.1 person walking facing right: medium skin tone
|
||||
1F6B6 1F3FE 200D 27A1 FE0F ; fully-qualified # 🚶🏾➡️ E15.1 person walking facing right: medium-dark skin tone
|
||||
1F6B6 1F3FE 200D 27A1 ; minimally-qualified # 🚶🏾➡ E15.1 person walking facing right: medium-dark skin tone
|
||||
1F6B6 1F3FF 200D 27A1 FE0F ; fully-qualified # 🚶🏿➡️ E15.1 person walking facing right: dark skin tone
|
||||
1F6B6 1F3FF 200D 27A1 ; minimally-qualified # 🚶🏿➡ E15.1 person walking facing right: dark skin tone
|
||||
1F6B6 200D 2640 FE0F 200D 27A1 FE0F ; fully-qualified # 🚶♀️➡️ E15.1 woman walking facing right
|
||||
1F6B6 200D 2640 200D 27A1 FE0F ; minimally-qualified # 🚶♀➡️ E15.1 woman walking facing right
|
||||
1F6B6 200D 2640 FE0F 200D 27A1 ; minimally-qualified # 🚶♀️➡ E15.1 woman walking facing right
|
||||
1F6B6 200D 2640 200D 27A1 ; minimally-qualified # 🚶♀➡ E15.1 woman walking facing right
|
||||
1F6B6 1F3FB 200D 2640 FE0F 200D 27A1 FE0F ; fully-qualified # 🚶🏻♀️➡️ E15.1 woman walking facing right: light skin tone
|
||||
1F6B6 1F3FB 200D 2640 200D 27A1 FE0F ; minimally-qualified # 🚶🏻♀➡️ E15.1 woman walking facing right: light skin tone
|
||||
1F6B6 1F3FB 200D 2640 FE0F 200D 27A1 ; minimally-qualified # 🚶🏻♀️➡ E15.1 woman walking facing right: light skin tone
|
||||
1F6B6 1F3FB 200D 2640 200D 27A1 ; minimally-qualified # 🚶🏻♀➡ E15.1 woman walking facing right: light skin tone
|
||||
1F6B6 1F3FC 200D 2640 FE0F 200D 27A1 FE0F ; fully-qualified # 🚶🏼♀️➡️ E15.1 woman walking facing right: medium-light skin tone
|
||||
1F6B6 1F3FC 200D 2640 200D 27A1 FE0F ; minimally-qualified # 🚶🏼♀➡️ E15.1 woman walking facing right: medium-light skin tone
|
||||
1F6B6 1F3FC 200D 2640 FE0F 200D 27A1 ; minimally-qualified # 🚶🏼♀️➡ E15.1 woman walking facing right: medium-light skin tone
|
||||
1F6B6 1F3FC 200D 2640 200D 27A1 ; minimally-qualified # 🚶🏼♀➡ E15.1 woman walking facing right: medium-light skin tone
|
||||
1F6B6 1F3FD 200D 2640 FE0F 200D 27A1 FE0F ; fully-qualified # 🚶🏽♀️➡️ E15.1 woman walking facing right: medium skin tone
|
||||
1F6B6 1F3FD 200D 2640 200D 27A1 FE0F ; minimally-qualified # 🚶🏽♀➡️ E15.1 woman walking facing right: medium skin tone
|
||||
1F6B6 1F3FD 200D 2640 FE0F 200D 27A1 ; minimally-qualified # 🚶🏽♀️➡ E15.1 woman walking facing right: medium skin tone
|
||||
1F6B6 1F3FD 200D 2640 200D 27A1 ; minimally-qualified # 🚶🏽♀➡ E15.1 woman walking facing right: medium skin tone
|
||||
1F6B6 1F3FE 200D 2640 FE0F 200D 27A1 FE0F ; fully-qualified # 🚶🏾♀️➡️ E15.1 woman walking facing right: medium-dark skin tone
|
||||
1F6B6 1F3FE 200D 2640 200D 27A1 FE0F ; minimally-qualified # 🚶🏾♀➡️ E15.1 woman walking facing right: medium-dark skin tone
|
||||
1F6B6 1F3FE 200D 2640 FE0F 200D 27A1 ; minimally-qualified # 🚶🏾♀️➡ E15.1 woman walking facing right: medium-dark skin tone
|
||||
1F6B6 1F3FE 200D 2640 200D 27A1 ; minimally-qualified # 🚶🏾♀➡ E15.1 woman walking facing right: medium-dark skin tone
|
||||
1F6B6 1F3FF 200D 2640 FE0F 200D 27A1 FE0F ; fully-qualified # 🚶🏿♀️➡️ E15.1 woman walking facing right: dark skin tone
|
||||
1F6B6 1F3FF 200D 2640 200D 27A1 FE0F ; minimally-qualified # 🚶🏿♀➡️ E15.1 woman walking facing right: dark skin tone
|
||||
1F6B6 1F3FF 200D 2640 FE0F 200D 27A1 ; minimally-qualified # 🚶🏿♀️➡ E15.1 woman walking facing right: dark skin tone
|
||||
1F6B6 1F3FF 200D 2640 200D 27A1 ; minimally-qualified # 🚶🏿♀➡ E15.1 woman walking facing right: dark skin tone
|
||||
1F6B6 200D 2642 FE0F 200D 27A1 FE0F ; fully-qualified # 🚶♂️➡️ E15.1 man walking facing right
|
||||
1F6B6 200D 2642 200D 27A1 FE0F ; minimally-qualified # 🚶♂➡️ E15.1 man walking facing right
|
||||
1F6B6 200D 2642 FE0F 200D 27A1 ; minimally-qualified # 🚶♂️➡ E15.1 man walking facing right
|
||||
1F6B6 200D 2642 200D 27A1 ; minimally-qualified # 🚶♂➡ E15.1 man walking facing right
|
||||
1F6B6 1F3FB 200D 2642 FE0F 200D 27A1 FE0F ; fully-qualified # 🚶🏻♂️➡️ E15.1 man walking facing right: light skin tone
|
||||
1F6B6 1F3FB 200D 2642 200D 27A1 FE0F ; minimally-qualified # 🚶🏻♂➡️ E15.1 man walking facing right: light skin tone
|
||||
1F6B6 1F3FB 200D 2642 FE0F 200D 27A1 ; minimally-qualified # 🚶🏻♂️➡ E15.1 man walking facing right: light skin tone
|
||||
1F6B6 1F3FB 200D 2642 200D 27A1 ; minimally-qualified # 🚶🏻♂➡ E15.1 man walking facing right: light skin tone
|
||||
1F6B6 1F3FC 200D 2642 FE0F 200D 27A1 FE0F ; fully-qualified # 🚶🏼♂️➡️ E15.1 man walking facing right: medium-light skin tone
|
||||
1F6B6 1F3FC 200D 2642 200D 27A1 FE0F ; minimally-qualified # 🚶🏼♂➡️ E15.1 man walking facing right: medium-light skin tone
|
||||
1F6B6 1F3FC 200D 2642 FE0F 200D 27A1 ; minimally-qualified # 🚶🏼♂️➡ E15.1 man walking facing right: medium-light skin tone
|
||||
1F6B6 1F3FC 200D 2642 200D 27A1 ; minimally-qualified # 🚶🏼♂➡ E15.1 man walking facing right: medium-light skin tone
|
||||
1F6B6 1F3FD 200D 2642 FE0F 200D 27A1 FE0F ; fully-qualified # 🚶🏽♂️➡️ E15.1 man walking facing right: medium skin tone
|
||||
1F6B6 1F3FD 200D 2642 200D 27A1 FE0F ; minimally-qualified # 🚶🏽♂➡️ E15.1 man walking facing right: medium skin tone
|
||||
1F6B6 1F3FD 200D 2642 FE0F 200D 27A1 ; minimally-qualified # 🚶🏽♂️➡ E15.1 man walking facing right: medium skin tone
|
||||
1F6B6 1F3FD 200D 2642 200D 27A1 ; minimally-qualified # 🚶🏽♂➡ E15.1 man walking facing right: medium skin tone
|
||||
1F6B6 1F3FE 200D 2642 FE0F 200D 27A1 FE0F ; fully-qualified # 🚶🏾♂️➡️ E15.1 man walking facing right: medium-dark skin tone
|
||||
1F6B6 1F3FE 200D 2642 200D 27A1 FE0F ; minimally-qualified # 🚶🏾♂➡️ E15.1 man walking facing right: medium-dark skin tone
|
||||
1F6B6 1F3FE 200D 2642 FE0F 200D 27A1 ; minimally-qualified # 🚶🏾♂️➡ E15.1 man walking facing right: medium-dark skin tone
|
||||
1F6B6 1F3FE 200D 2642 200D 27A1 ; minimally-qualified # 🚶🏾♂➡ E15.1 man walking facing right: medium-dark skin tone
|
||||
1F6B6 1F3FF 200D 2642 FE0F 200D 27A1 FE0F ; fully-qualified # 🚶🏿♂️➡️ E15.1 man walking facing right: dark skin tone
|
||||
1F6B6 1F3FF 200D 2642 200D 27A1 FE0F ; minimally-qualified # 🚶🏿♂➡️ E15.1 man walking facing right: dark skin tone
|
||||
1F6B6 1F3FF 200D 2642 FE0F 200D 27A1 ; minimally-qualified # 🚶🏿♂️➡ E15.1 man walking facing right: dark skin tone
|
||||
1F6B6 1F3FF 200D 2642 200D 27A1 ; minimally-qualified # 🚶🏿♂➡ E15.1 man walking facing right: dark skin tone
|
||||
1F9CD ; fully-qualified # 🧍 E12.0 person standing
|
||||
1F9CD 1F3FB ; fully-qualified # 🧍🏻 E12.0 person standing: light skin tone
|
||||
1F9CD 1F3FC ; fully-qualified # 🧍🏼 E12.0 person standing: medium-light skin tone
|
||||
|
@ -2125,60 +2189,228 @@
|
|||
1F9CE 1F3FE 200D 2640 ; minimally-qualified # 🧎🏾♀ E12.0 woman kneeling: medium-dark skin tone
|
||||
1F9CE 1F3FF 200D 2640 FE0F ; fully-qualified # 🧎🏿♀️ E12.0 woman kneeling: dark skin tone
|
||||
1F9CE 1F3FF 200D 2640 ; minimally-qualified # 🧎🏿♀ E12.0 woman kneeling: dark skin tone
|
||||
1F9CE 200D 27A1 FE0F ; fully-qualified # 🧎➡️ E15.1 person kneeling facing right
|
||||
1F9CE 200D 27A1 ; minimally-qualified # 🧎➡ E15.1 person kneeling facing right
|
||||
1F9CE 1F3FB 200D 27A1 FE0F ; fully-qualified # 🧎🏻➡️ E15.1 person kneeling facing right: light skin tone
|
||||
1F9CE 1F3FB 200D 27A1 ; minimally-qualified # 🧎🏻➡ E15.1 person kneeling facing right: light skin tone
|
||||
1F9CE 1F3FC 200D 27A1 FE0F ; fully-qualified # 🧎🏼➡️ E15.1 person kneeling facing right: medium-light skin tone
|
||||
1F9CE 1F3FC 200D 27A1 ; minimally-qualified # 🧎🏼➡ E15.1 person kneeling facing right: medium-light skin tone
|
||||
1F9CE 1F3FD 200D 27A1 FE0F ; fully-qualified # 🧎🏽➡️ E15.1 person kneeling facing right: medium skin tone
|
||||
1F9CE 1F3FD 200D 27A1 ; minimally-qualified # 🧎🏽➡ E15.1 person kneeling facing right: medium skin tone
|
||||
1F9CE 1F3FE 200D 27A1 FE0F ; fully-qualified # 🧎🏾➡️ E15.1 person kneeling facing right: medium-dark skin tone
|
||||
1F9CE 1F3FE 200D 27A1 ; minimally-qualified # 🧎🏾➡ E15.1 person kneeling facing right: medium-dark skin tone
|
||||
1F9CE 1F3FF 200D 27A1 FE0F ; fully-qualified # 🧎🏿➡️ E15.1 person kneeling facing right: dark skin tone
|
||||
1F9CE 1F3FF 200D 27A1 ; minimally-qualified # 🧎🏿➡ E15.1 person kneeling facing right: dark skin tone
|
||||
1F9CE 200D 2640 FE0F 200D 27A1 FE0F ; fully-qualified # 🧎♀️➡️ E15.1 woman kneeling facing right
|
||||
1F9CE 200D 2640 200D 27A1 FE0F ; minimally-qualified # 🧎♀➡️ E15.1 woman kneeling facing right
|
||||
1F9CE 200D 2640 FE0F 200D 27A1 ; minimally-qualified # 🧎♀️➡ E15.1 woman kneeling facing right
|
||||
1F9CE 200D 2640 200D 27A1 ; minimally-qualified # 🧎♀➡ E15.1 woman kneeling facing right
|
||||
1F9CE 1F3FB 200D 2640 FE0F 200D 27A1 FE0F ; fully-qualified # 🧎🏻♀️➡️ E15.1 woman kneeling facing right: light skin tone
|
||||
1F9CE 1F3FB 200D 2640 200D 27A1 FE0F ; minimally-qualified # 🧎🏻♀➡️ E15.1 woman kneeling facing right: light skin tone
|
||||
1F9CE 1F3FB 200D 2640 FE0F 200D 27A1 ; minimally-qualified # 🧎🏻♀️➡ E15.1 woman kneeling facing right: light skin tone
|
||||
1F9CE 1F3FB 200D 2640 200D 27A1 ; minimally-qualified # 🧎🏻♀➡ E15.1 woman kneeling facing right: light skin tone
|
||||
1F9CE 1F3FC 200D 2640 FE0F 200D 27A1 FE0F ; fully-qualified # 🧎🏼♀️➡️ E15.1 woman kneeling facing right: medium-light skin tone
|
||||
1F9CE 1F3FC 200D 2640 200D 27A1 FE0F ; minimally-qualified # 🧎🏼♀➡️ E15.1 woman kneeling facing right: medium-light skin tone
|
||||
1F9CE 1F3FC 200D 2640 FE0F 200D 27A1 ; minimally-qualified # 🧎🏼♀️➡ E15.1 woman kneeling facing right: medium-light skin tone
|
||||
1F9CE 1F3FC 200D 2640 200D 27A1 ; minimally-qualified # 🧎🏼♀➡ E15.1 woman kneeling facing right: medium-light skin tone
|
||||
1F9CE 1F3FD 200D 2640 FE0F 200D 27A1 FE0F ; fully-qualified # 🧎🏽♀️➡️ E15.1 woman kneeling facing right: medium skin tone
|
||||
1F9CE 1F3FD 200D 2640 200D 27A1 FE0F ; minimally-qualified # 🧎🏽♀➡️ E15.1 woman kneeling facing right: medium skin tone
|
||||
1F9CE 1F3FD 200D 2640 FE0F 200D 27A1 ; minimally-qualified # 🧎🏽♀️➡ E15.1 woman kneeling facing right: medium skin tone
|
||||
1F9CE 1F3FD 200D 2640 200D 27A1 ; minimally-qualified # 🧎🏽♀➡ E15.1 woman kneeling facing right: medium skin tone
|
||||
1F9CE 1F3FE 200D 2640 FE0F 200D 27A1 FE0F ; fully-qualified # 🧎🏾♀️➡️ E15.1 woman kneeling facing right: medium-dark skin tone
|
||||
1F9CE 1F3FE 200D 2640 200D 27A1 FE0F ; minimally-qualified # 🧎🏾♀➡️ E15.1 woman kneeling facing right: medium-dark skin tone
|
||||
1F9CE 1F3FE 200D 2640 FE0F 200D 27A1 ; minimally-qualified # 🧎🏾♀️➡ E15.1 woman kneeling facing right: medium-dark skin tone
|
||||
1F9CE 1F3FE 200D 2640 200D 27A1 ; minimally-qualified # 🧎🏾♀➡ E15.1 woman kneeling facing right: medium-dark skin tone
|
||||
1F9CE 1F3FF 200D 2640 FE0F 200D 27A1 FE0F ; fully-qualified # 🧎🏿♀️➡️ E15.1 woman kneeling facing right: dark skin tone
|
||||
1F9CE 1F3FF 200D 2640 200D 27A1 FE0F ; minimally-qualified # 🧎🏿♀➡️ E15.1 woman kneeling facing right: dark skin tone
|
||||
1F9CE 1F3FF 200D 2640 FE0F 200D 27A1 ; minimally-qualified # 🧎🏿♀️➡ E15.1 woman kneeling facing right: dark skin tone
|
||||
1F9CE 1F3FF 200D 2640 200D 27A1 ; minimally-qualified # 🧎🏿♀➡ E15.1 woman kneeling facing right: dark skin tone
|
||||
1F9CE 200D 2642 FE0F 200D 27A1 FE0F ; fully-qualified # 🧎♂️➡️ E15.1 man kneeling facing right
|
||||
1F9CE 200D 2642 200D 27A1 FE0F ; minimally-qualified # 🧎♂➡️ E15.1 man kneeling facing right
|
||||
1F9CE 200D 2642 FE0F 200D 27A1 ; minimally-qualified # 🧎♂️➡ E15.1 man kneeling facing right
|
||||
1F9CE 200D 2642 200D 27A1 ; minimally-qualified # 🧎♂➡ E15.1 man kneeling facing right
|
||||
1F9CE 1F3FB 200D 2642 FE0F 200D 27A1 FE0F ; fully-qualified # 🧎🏻♂️➡️ E15.1 man kneeling facing right: light skin tone
|
||||
1F9CE 1F3FB 200D 2642 200D 27A1 FE0F ; minimally-qualified # 🧎🏻♂➡️ E15.1 man kneeling facing right: light skin tone
|
||||
1F9CE 1F3FB 200D 2642 FE0F 200D 27A1 ; minimally-qualified # 🧎🏻♂️➡ E15.1 man kneeling facing right: light skin tone
|
||||
1F9CE 1F3FB 200D 2642 200D 27A1 ; minimally-qualified # 🧎🏻♂➡ E15.1 man kneeling facing right: light skin tone
|
||||
1F9CE 1F3FC 200D 2642 FE0F 200D 27A1 FE0F ; fully-qualified # 🧎🏼♂️➡️ E15.1 man kneeling facing right: medium-light skin tone
|
||||
1F9CE 1F3FC 200D 2642 200D 27A1 FE0F ; minimally-qualified # 🧎🏼♂➡️ E15.1 man kneeling facing right: medium-light skin tone
|
||||
1F9CE 1F3FC 200D 2642 FE0F 200D 27A1 ; minimally-qualified # 🧎🏼♂️➡ E15.1 man kneeling facing right: medium-light skin tone
|
||||
1F9CE 1F3FC 200D 2642 200D 27A1 ; minimally-qualified # 🧎🏼♂➡ E15.1 man kneeling facing right: medium-light skin tone
|
||||
1F9CE 1F3FD 200D 2642 FE0F 200D 27A1 FE0F ; fully-qualified # 🧎🏽♂️➡️ E15.1 man kneeling facing right: medium skin tone
|
||||
1F9CE 1F3FD 200D 2642 200D 27A1 FE0F ; minimally-qualified # 🧎🏽♂➡️ E15.1 man kneeling facing right: medium skin tone
|
||||
1F9CE 1F3FD 200D 2642 FE0F 200D 27A1 ; minimally-qualified # 🧎🏽♂️➡ E15.1 man kneeling facing right: medium skin tone
|
||||
1F9CE 1F3FD 200D 2642 200D 27A1 ; minimally-qualified # 🧎🏽♂➡ E15.1 man kneeling facing right: medium skin tone
|
||||
1F9CE 1F3FE 200D 2642 FE0F 200D 27A1 FE0F ; fully-qualified # 🧎🏾♂️➡️ E15.1 man kneeling facing right: medium-dark skin tone
|
||||
1F9CE 1F3FE 200D 2642 200D 27A1 FE0F ; minimally-qualified # 🧎🏾♂➡️ E15.1 man kneeling facing right: medium-dark skin tone
|
||||
1F9CE 1F3FE 200D 2642 FE0F 200D 27A1 ; minimally-qualified # 🧎🏾♂️➡ E15.1 man kneeling facing right: medium-dark skin tone
|
||||
1F9CE 1F3FE 200D 2642 200D 27A1 ; minimally-qualified # 🧎🏾♂➡ E15.1 man kneeling facing right: medium-dark skin tone
|
||||
1F9CE 1F3FF 200D 2642 FE0F 200D 27A1 FE0F ; fully-qualified # 🧎🏿♂️➡️ E15.1 man kneeling facing right: dark skin tone
|
||||
1F9CE 1F3FF 200D 2642 200D 27A1 FE0F ; minimally-qualified # 🧎🏿♂➡️ E15.1 man kneeling facing right: dark skin tone
|
||||
1F9CE 1F3FF 200D 2642 FE0F 200D 27A1 ; minimally-qualified # 🧎🏿♂️➡ E15.1 man kneeling facing right: dark skin tone
|
||||
1F9CE 1F3FF 200D 2642 200D 27A1 ; minimally-qualified # 🧎🏿♂➡ E15.1 man kneeling facing right: dark skin tone
|
||||
1F9D1 200D 1F9AF ; fully-qualified # 🧑🦯 E12.1 person with white cane
|
||||
1F9D1 1F3FB 200D 1F9AF ; fully-qualified # 🧑🏻🦯 E12.1 person with white cane: light skin tone
|
||||
1F9D1 1F3FC 200D 1F9AF ; fully-qualified # 🧑🏼🦯 E12.1 person with white cane: medium-light skin tone
|
||||
1F9D1 1F3FD 200D 1F9AF ; fully-qualified # 🧑🏽🦯 E12.1 person with white cane: medium skin tone
|
||||
1F9D1 1F3FE 200D 1F9AF ; fully-qualified # 🧑🏾🦯 E12.1 person with white cane: medium-dark skin tone
|
||||
1F9D1 1F3FF 200D 1F9AF ; fully-qualified # 🧑🏿🦯 E12.1 person with white cane: dark skin tone
|
||||
1F9D1 200D 1F9AF 200D 27A1 FE0F ; fully-qualified # 🧑🦯➡️ E15.1 person with white cane facing right
|
||||
1F9D1 200D 1F9AF 200D 27A1 ; minimally-qualified # 🧑🦯➡ E15.1 person with white cane facing right
|
||||
1F9D1 1F3FB 200D 1F9AF 200D 27A1 FE0F ; fully-qualified # 🧑🏻🦯➡️ E15.1 person with white cane facing right: light skin tone
|
||||
1F9D1 1F3FB 200D 1F9AF 200D 27A1 ; minimally-qualified # 🧑🏻🦯➡ E15.1 person with white cane facing right: light skin tone
|
||||
1F9D1 1F3FC 200D 1F9AF 200D 27A1 FE0F ; fully-qualified # 🧑🏼🦯➡️ E15.1 person with white cane facing right: medium-light skin tone
|
||||
1F9D1 1F3FC 200D 1F9AF 200D 27A1 ; minimally-qualified # 🧑🏼🦯➡ E15.1 person with white cane facing right: medium-light skin tone
|
||||
1F9D1 1F3FD 200D 1F9AF 200D 27A1 FE0F ; fully-qualified # 🧑🏽🦯➡️ E15.1 person with white cane facing right: medium skin tone
|
||||
1F9D1 1F3FD 200D 1F9AF 200D 27A1 ; minimally-qualified # 🧑🏽🦯➡ E15.1 person with white cane facing right: medium skin tone
|
||||
1F9D1 1F3FE 200D 1F9AF 200D 27A1 FE0F ; fully-qualified # 🧑🏾🦯➡️ E15.1 person with white cane facing right: medium-dark skin tone
|
||||
1F9D1 1F3FE 200D 1F9AF 200D 27A1 ; minimally-qualified # 🧑🏾🦯➡ E15.1 person with white cane facing right: medium-dark skin tone
|
||||
1F9D1 1F3FF 200D 1F9AF 200D 27A1 FE0F ; fully-qualified # 🧑🏿🦯➡️ E15.1 person with white cane facing right: dark skin tone
|
||||
1F9D1 1F3FF 200D 1F9AF 200D 27A1 ; minimally-qualified # 🧑🏿🦯➡ E15.1 person with white cane facing right: dark skin tone
|
||||
1F468 200D 1F9AF ; fully-qualified # 👨🦯 E12.0 man with white cane
|
||||
1F468 1F3FB 200D 1F9AF ; fully-qualified # 👨🏻🦯 E12.0 man with white cane: light skin tone
|
||||
1F468 1F3FC 200D 1F9AF ; fully-qualified # 👨🏼🦯 E12.0 man with white cane: medium-light skin tone
|
||||
1F468 1F3FD 200D 1F9AF ; fully-qualified # 👨🏽🦯 E12.0 man with white cane: medium skin tone
|
||||
1F468 1F3FE 200D 1F9AF ; fully-qualified # 👨🏾🦯 E12.0 man with white cane: medium-dark skin tone
|
||||
1F468 1F3FF 200D 1F9AF ; fully-qualified # 👨🏿🦯 E12.0 man with white cane: dark skin tone
|
||||
1F468 200D 1F9AF 200D 27A1 FE0F ; fully-qualified # 👨🦯➡️ E15.1 man with white cane facing right
|
||||
1F468 200D 1F9AF 200D 27A1 ; minimally-qualified # 👨🦯➡ E15.1 man with white cane facing right
|
||||
1F468 1F3FB 200D 1F9AF 200D 27A1 FE0F ; fully-qualified # 👨🏻🦯➡️ E15.1 man with white cane facing right: light skin tone
|
||||
1F468 1F3FB 200D 1F9AF 200D 27A1 ; minimally-qualified # 👨🏻🦯➡ E15.1 man with white cane facing right: light skin tone
|
||||
1F468 1F3FC 200D 1F9AF 200D 27A1 FE0F ; fully-qualified # 👨🏼🦯➡️ E15.1 man with white cane facing right: medium-light skin tone
|
||||
1F468 1F3FC 200D 1F9AF 200D 27A1 ; minimally-qualified # 👨🏼🦯➡ E15.1 man with white cane facing right: medium-light skin tone
|
||||
1F468 1F3FD 200D 1F9AF 200D 27A1 FE0F ; fully-qualified # 👨🏽🦯➡️ E15.1 man with white cane facing right: medium skin tone
|
||||
1F468 1F3FD 200D 1F9AF 200D 27A1 ; minimally-qualified # 👨🏽🦯➡ E15.1 man with white cane facing right: medium skin tone
|
||||
1F468 1F3FE 200D 1F9AF 200D 27A1 FE0F ; fully-qualified # 👨🏾🦯➡️ E15.1 man with white cane facing right: medium-dark skin tone
|
||||
1F468 1F3FE 200D 1F9AF 200D 27A1 ; minimally-qualified # 👨🏾🦯➡ E15.1 man with white cane facing right: medium-dark skin tone
|
||||
1F468 1F3FF 200D 1F9AF 200D 27A1 FE0F ; fully-qualified # 👨🏿🦯➡️ E15.1 man with white cane facing right: dark skin tone
|
||||
1F468 1F3FF 200D 1F9AF 200D 27A1 ; minimally-qualified # 👨🏿🦯➡ E15.1 man with white cane facing right: dark skin tone
|
||||
1F469 200D 1F9AF ; fully-qualified # 👩🦯 E12.0 woman with white cane
|
||||
1F469 1F3FB 200D 1F9AF ; fully-qualified # 👩🏻🦯 E12.0 woman with white cane: light skin tone
|
||||
1F469 1F3FC 200D 1F9AF ; fully-qualified # 👩🏼🦯 E12.0 woman with white cane: medium-light skin tone
|
||||
1F469 1F3FD 200D 1F9AF ; fully-qualified # 👩🏽🦯 E12.0 woman with white cane: medium skin tone
|
||||
1F469 1F3FE 200D 1F9AF ; fully-qualified # 👩🏾🦯 E12.0 woman with white cane: medium-dark skin tone
|
||||
1F469 1F3FF 200D 1F9AF ; fully-qualified # 👩🏿🦯 E12.0 woman with white cane: dark skin tone
|
||||
1F469 200D 1F9AF 200D 27A1 FE0F ; fully-qualified # 👩🦯➡️ E15.1 woman with white cane facing right
|
||||
1F469 200D 1F9AF 200D 27A1 ; minimally-qualified # 👩🦯➡ E15.1 woman with white cane facing right
|
||||
1F469 1F3FB 200D 1F9AF 200D 27A1 FE0F ; fully-qualified # 👩🏻🦯➡️ E15.1 woman with white cane facing right: light skin tone
|
||||
1F469 1F3FB 200D 1F9AF 200D 27A1 ; minimally-qualified # 👩🏻🦯➡ E15.1 woman with white cane facing right: light skin tone
|
||||
1F469 1F3FC 200D 1F9AF 200D 27A1 FE0F ; fully-qualified # 👩🏼🦯➡️ E15.1 woman with white cane facing right: medium-light skin tone
|
||||
1F469 1F3FC 200D 1F9AF 200D 27A1 ; minimally-qualified # 👩🏼🦯➡ E15.1 woman with white cane facing right: medium-light skin tone
|
||||
1F469 1F3FD 200D 1F9AF 200D 27A1 FE0F ; fully-qualified # 👩🏽🦯➡️ E15.1 woman with white cane facing right: medium skin tone
|
||||
1F469 1F3FD 200D 1F9AF 200D 27A1 ; minimally-qualified # 👩🏽🦯➡ E15.1 woman with white cane facing right: medium skin tone
|
||||
1F469 1F3FE 200D 1F9AF 200D 27A1 FE0F ; fully-qualified # 👩🏾🦯➡️ E15.1 woman with white cane facing right: medium-dark skin tone
|
||||
1F469 1F3FE 200D 1F9AF 200D 27A1 ; minimally-qualified # 👩🏾🦯➡ E15.1 woman with white cane facing right: medium-dark skin tone
|
||||
1F469 1F3FF 200D 1F9AF 200D 27A1 FE0F ; fully-qualified # 👩🏿🦯➡️ E15.1 woman with white cane facing right: dark skin tone
|
||||
1F469 1F3FF 200D 1F9AF 200D 27A1 ; minimally-qualified # 👩🏿🦯➡ E15.1 woman with white cane facing right: dark skin tone
|
||||
1F9D1 200D 1F9BC ; fully-qualified # 🧑🦼 E12.1 person in motorized wheelchair
|
||||
1F9D1 1F3FB 200D 1F9BC ; fully-qualified # 🧑🏻🦼 E12.1 person in motorized wheelchair: light skin tone
|
||||
1F9D1 1F3FC 200D 1F9BC ; fully-qualified # 🧑🏼🦼 E12.1 person in motorized wheelchair: medium-light skin tone
|
||||
1F9D1 1F3FD 200D 1F9BC ; fully-qualified # 🧑🏽🦼 E12.1 person in motorized wheelchair: medium skin tone
|
||||
1F9D1 1F3FE 200D 1F9BC ; fully-qualified # 🧑🏾🦼 E12.1 person in motorized wheelchair: medium-dark skin tone
|
||||
1F9D1 1F3FF 200D 1F9BC ; fully-qualified # 🧑🏿🦼 E12.1 person in motorized wheelchair: dark skin tone
|
||||
1F9D1 200D 1F9BC 200D 27A1 FE0F ; fully-qualified # 🧑🦼➡️ E15.1 person in motorized wheelchair facing right
|
||||
1F9D1 200D 1F9BC 200D 27A1 ; minimally-qualified # 🧑🦼➡ E15.1 person in motorized wheelchair facing right
|
||||
1F9D1 1F3FB 200D 1F9BC 200D 27A1 FE0F ; fully-qualified # 🧑🏻🦼➡️ E15.1 person in motorized wheelchair facing right: light skin tone
|
||||
1F9D1 1F3FB 200D 1F9BC 200D 27A1 ; minimally-qualified # 🧑🏻🦼➡ E15.1 person in motorized wheelchair facing right: light skin tone
|
||||
1F9D1 1F3FC 200D 1F9BC 200D 27A1 FE0F ; fully-qualified # 🧑🏼🦼➡️ E15.1 person in motorized wheelchair facing right: medium-light skin tone
|
||||
1F9D1 1F3FC 200D 1F9BC 200D 27A1 ; minimally-qualified # 🧑🏼🦼➡ E15.1 person in motorized wheelchair facing right: medium-light skin tone
|
||||
1F9D1 1F3FD 200D 1F9BC 200D 27A1 FE0F ; fully-qualified # 🧑🏽🦼➡️ E15.1 person in motorized wheelchair facing right: medium skin tone
|
||||
1F9D1 1F3FD 200D 1F9BC 200D 27A1 ; minimally-qualified # 🧑🏽🦼➡ E15.1 person in motorized wheelchair facing right: medium skin tone
|
||||
1F9D1 1F3FE 200D 1F9BC 200D 27A1 FE0F ; fully-qualified # 🧑🏾🦼➡️ E15.1 person in motorized wheelchair facing right: medium-dark skin tone
|
||||
1F9D1 1F3FE 200D 1F9BC 200D 27A1 ; minimally-qualified # 🧑🏾🦼➡ E15.1 person in motorized wheelchair facing right: medium-dark skin tone
|
||||
1F9D1 1F3FF 200D 1F9BC 200D 27A1 FE0F ; fully-qualified # 🧑🏿🦼➡️ E15.1 person in motorized wheelchair facing right: dark skin tone
|
||||
1F9D1 1F3FF 200D 1F9BC 200D 27A1 ; minimally-qualified # 🧑🏿🦼➡ E15.1 person in motorized wheelchair facing right: dark skin tone
|
||||
1F468 200D 1F9BC ; fully-qualified # 👨🦼 E12.0 man in motorized wheelchair
|
||||
1F468 1F3FB 200D 1F9BC ; fully-qualified # 👨🏻🦼 E12.0 man in motorized wheelchair: light skin tone
|
||||
1F468 1F3FC 200D 1F9BC ; fully-qualified # 👨🏼🦼 E12.0 man in motorized wheelchair: medium-light skin tone
|
||||
1F468 1F3FD 200D 1F9BC ; fully-qualified # 👨🏽🦼 E12.0 man in motorized wheelchair: medium skin tone
|
||||
1F468 1F3FE 200D 1F9BC ; fully-qualified # 👨🏾🦼 E12.0 man in motorized wheelchair: medium-dark skin tone
|
||||
1F468 1F3FF 200D 1F9BC ; fully-qualified # 👨🏿🦼 E12.0 man in motorized wheelchair: dark skin tone
|
||||
1F468 200D 1F9BC 200D 27A1 FE0F ; fully-qualified # 👨🦼➡️ E15.1 man in motorized wheelchair facing right
|
||||
1F468 200D 1F9BC 200D 27A1 ; minimally-qualified # 👨🦼➡ E15.1 man in motorized wheelchair facing right
|
||||
1F468 1F3FB 200D 1F9BC 200D 27A1 FE0F ; fully-qualified # 👨🏻🦼➡️ E15.1 man in motorized wheelchair facing right: light skin tone
|
||||
1F468 1F3FB 200D 1F9BC 200D 27A1 ; minimally-qualified # 👨🏻🦼➡ E15.1 man in motorized wheelchair facing right: light skin tone
|
||||
1F468 1F3FC 200D 1F9BC 200D 27A1 FE0F ; fully-qualified # 👨🏼🦼➡️ E15.1 man in motorized wheelchair facing right: medium-light skin tone
|
||||
1F468 1F3FC 200D 1F9BC 200D 27A1 ; minimally-qualified # 👨🏼🦼➡ E15.1 man in motorized wheelchair facing right: medium-light skin tone
|
||||
1F468 1F3FD 200D 1F9BC 200D 27A1 FE0F ; fully-qualified # 👨🏽🦼➡️ E15.1 man in motorized wheelchair facing right: medium skin tone
|
||||
1F468 1F3FD 200D 1F9BC 200D 27A1 ; minimally-qualified # 👨🏽🦼➡ E15.1 man in motorized wheelchair facing right: medium skin tone
|
||||
1F468 1F3FE 200D 1F9BC 200D 27A1 FE0F ; fully-qualified # 👨🏾🦼➡️ E15.1 man in motorized wheelchair facing right: medium-dark skin tone
|
||||
1F468 1F3FE 200D 1F9BC 200D 27A1 ; minimally-qualified # 👨🏾🦼➡ E15.1 man in motorized wheelchair facing right: medium-dark skin tone
|
||||
1F468 1F3FF 200D 1F9BC 200D 27A1 FE0F ; fully-qualified # 👨🏿🦼➡️ E15.1 man in motorized wheelchair facing right: dark skin tone
|
||||
1F468 1F3FF 200D 1F9BC 200D 27A1 ; minimally-qualified # 👨🏿🦼➡ E15.1 man in motorized wheelchair facing right: dark skin tone
|
||||
1F469 200D 1F9BC ; fully-qualified # 👩🦼 E12.0 woman in motorized wheelchair
|
||||
1F469 1F3FB 200D 1F9BC ; fully-qualified # 👩🏻🦼 E12.0 woman in motorized wheelchair: light skin tone
|
||||
1F469 1F3FC 200D 1F9BC ; fully-qualified # 👩🏼🦼 E12.0 woman in motorized wheelchair: medium-light skin tone
|
||||
1F469 1F3FD 200D 1F9BC ; fully-qualified # 👩🏽🦼 E12.0 woman in motorized wheelchair: medium skin tone
|
||||
1F469 1F3FE 200D 1F9BC ; fully-qualified # 👩🏾🦼 E12.0 woman in motorized wheelchair: medium-dark skin tone
|
||||
1F469 1F3FF 200D 1F9BC ; fully-qualified # 👩🏿🦼 E12.0 woman in motorized wheelchair: dark skin tone
|
||||
1F469 200D 1F9BC 200D 27A1 FE0F ; fully-qualified # 👩🦼➡️ E15.1 woman in motorized wheelchair facing right
|
||||
1F469 200D 1F9BC 200D 27A1 ; minimally-qualified # 👩🦼➡ E15.1 woman in motorized wheelchair facing right
|
||||
1F469 1F3FB 200D 1F9BC 200D 27A1 FE0F ; fully-qualified # 👩🏻🦼➡️ E15.1 woman in motorized wheelchair facing right: light skin tone
|
||||
1F469 1F3FB 200D 1F9BC 200D 27A1 ; minimally-qualified # 👩🏻🦼➡ E15.1 woman in motorized wheelchair facing right: light skin tone
|
||||
1F469 1F3FC 200D 1F9BC 200D 27A1 FE0F ; fully-qualified # 👩🏼🦼➡️ E15.1 woman in motorized wheelchair facing right: medium-light skin tone
|
||||
1F469 1F3FC 200D 1F9BC 200D 27A1 ; minimally-qualified # 👩🏼🦼➡ E15.1 woman in motorized wheelchair facing right: medium-light skin tone
|
||||
1F469 1F3FD 200D 1F9BC 200D 27A1 FE0F ; fully-qualified # 👩🏽🦼➡️ E15.1 woman in motorized wheelchair facing right: medium skin tone
|
||||
1F469 1F3FD 200D 1F9BC 200D 27A1 ; minimally-qualified # 👩🏽🦼➡ E15.1 woman in motorized wheelchair facing right: medium skin tone
|
||||
1F469 1F3FE 200D 1F9BC 200D 27A1 FE0F ; fully-qualified # 👩🏾🦼➡️ E15.1 woman in motorized wheelchair facing right: medium-dark skin tone
|
||||
1F469 1F3FE 200D 1F9BC 200D 27A1 ; minimally-qualified # 👩🏾🦼➡ E15.1 woman in motorized wheelchair facing right: medium-dark skin tone
|
||||
1F469 1F3FF 200D 1F9BC 200D 27A1 FE0F ; fully-qualified # 👩🏿🦼➡️ E15.1 woman in motorized wheelchair facing right: dark skin tone
|
||||
1F469 1F3FF 200D 1F9BC 200D 27A1 ; minimally-qualified # 👩🏿🦼➡ E15.1 woman in motorized wheelchair facing right: dark skin tone
|
||||
1F9D1 200D 1F9BD ; fully-qualified # 🧑🦽 E12.1 person in manual wheelchair
|
||||
1F9D1 1F3FB 200D 1F9BD ; fully-qualified # 🧑🏻🦽 E12.1 person in manual wheelchair: light skin tone
|
||||
1F9D1 1F3FC 200D 1F9BD ; fully-qualified # 🧑🏼🦽 E12.1 person in manual wheelchair: medium-light skin tone
|
||||
1F9D1 1F3FD 200D 1F9BD ; fully-qualified # 🧑🏽🦽 E12.1 person in manual wheelchair: medium skin tone
|
||||
1F9D1 1F3FE 200D 1F9BD ; fully-qualified # 🧑🏾🦽 E12.1 person in manual wheelchair: medium-dark skin tone
|
||||
1F9D1 1F3FF 200D 1F9BD ; fully-qualified # 🧑🏿🦽 E12.1 person in manual wheelchair: dark skin tone
|
||||
1F9D1 200D 1F9BD 200D 27A1 FE0F ; fully-qualified # 🧑🦽➡️ E15.1 person in manual wheelchair facing right
|
||||
1F9D1 200D 1F9BD 200D 27A1 ; minimally-qualified # 🧑🦽➡ E15.1 person in manual wheelchair facing right
|
||||
1F9D1 1F3FB 200D 1F9BD 200D 27A1 FE0F ; fully-qualified # 🧑🏻🦽➡️ E15.1 person in manual wheelchair facing right: light skin tone
|
||||
1F9D1 1F3FB 200D 1F9BD 200D 27A1 ; minimally-qualified # 🧑🏻🦽➡ E15.1 person in manual wheelchair facing right: light skin tone
|
||||
1F9D1 1F3FC 200D 1F9BD 200D 27A1 FE0F ; fully-qualified # 🧑🏼🦽➡️ E15.1 person in manual wheelchair facing right: medium-light skin tone
|
||||
1F9D1 1F3FC 200D 1F9BD 200D 27A1 ; minimally-qualified # 🧑🏼🦽➡ E15.1 person in manual wheelchair facing right: medium-light skin tone
|
||||
1F9D1 1F3FD 200D 1F9BD 200D 27A1 FE0F ; fully-qualified # 🧑🏽🦽➡️ E15.1 person in manual wheelchair facing right: medium skin tone
|
||||
1F9D1 1F3FD 200D 1F9BD 200D 27A1 ; minimally-qualified # 🧑🏽🦽➡ E15.1 person in manual wheelchair facing right: medium skin tone
|
||||
1F9D1 1F3FE 200D 1F9BD 200D 27A1 FE0F ; fully-qualified # 🧑🏾🦽➡️ E15.1 person in manual wheelchair facing right: medium-dark skin tone
|
||||
1F9D1 1F3FE 200D 1F9BD 200D 27A1 ; minimally-qualified # 🧑🏾🦽➡ E15.1 person in manual wheelchair facing right: medium-dark skin tone
|
||||
1F9D1 1F3FF 200D 1F9BD 200D 27A1 FE0F ; fully-qualified # 🧑🏿🦽➡️ E15.1 person in manual wheelchair facing right: dark skin tone
|
||||
1F9D1 1F3FF 200D 1F9BD 200D 27A1 ; minimally-qualified # 🧑🏿🦽➡ E15.1 person in manual wheelchair facing right: dark skin tone
|
||||
1F468 200D 1F9BD ; fully-qualified # 👨🦽 E12.0 man in manual wheelchair
|
||||
1F468 1F3FB 200D 1F9BD ; fully-qualified # 👨🏻🦽 E12.0 man in manual wheelchair: light skin tone
|
||||
1F468 1F3FC 200D 1F9BD ; fully-qualified # 👨🏼🦽 E12.0 man in manual wheelchair: medium-light skin tone
|
||||
1F468 1F3FD 200D 1F9BD ; fully-qualified # 👨🏽🦽 E12.0 man in manual wheelchair: medium skin tone
|
||||
1F468 1F3FE 200D 1F9BD ; fully-qualified # 👨🏾🦽 E12.0 man in manual wheelchair: medium-dark skin tone
|
||||
1F468 1F3FF 200D 1F9BD ; fully-qualified # 👨🏿🦽 E12.0 man in manual wheelchair: dark skin tone
|
||||
1F468 200D 1F9BD 200D 27A1 FE0F ; fully-qualified # 👨🦽➡️ E15.1 man in manual wheelchair facing right
|
||||
1F468 200D 1F9BD 200D 27A1 ; minimally-qualified # 👨🦽➡ E15.1 man in manual wheelchair facing right
|
||||
1F468 1F3FB 200D 1F9BD 200D 27A1 FE0F ; fully-qualified # 👨🏻🦽➡️ E15.1 man in manual wheelchair facing right: light skin tone
|
||||
1F468 1F3FB 200D 1F9BD 200D 27A1 ; minimally-qualified # 👨🏻🦽➡ E15.1 man in manual wheelchair facing right: light skin tone
|
||||
1F468 1F3FC 200D 1F9BD 200D 27A1 FE0F ; fully-qualified # 👨🏼🦽➡️ E15.1 man in manual wheelchair facing right: medium-light skin tone
|
||||
1F468 1F3FC 200D 1F9BD 200D 27A1 ; minimally-qualified # 👨🏼🦽➡ E15.1 man in manual wheelchair facing right: medium-light skin tone
|
||||
1F468 1F3FD 200D 1F9BD 200D 27A1 FE0F ; fully-qualified # 👨🏽🦽➡️ E15.1 man in manual wheelchair facing right: medium skin tone
|
||||
1F468 1F3FD 200D 1F9BD 200D 27A1 ; minimally-qualified # 👨🏽🦽➡ E15.1 man in manual wheelchair facing right: medium skin tone
|
||||
1F468 1F3FE 200D 1F9BD 200D 27A1 FE0F ; fully-qualified # 👨🏾🦽➡️ E15.1 man in manual wheelchair facing right: medium-dark skin tone
|
||||
1F468 1F3FE 200D 1F9BD 200D 27A1 ; minimally-qualified # 👨🏾🦽➡ E15.1 man in manual wheelchair facing right: medium-dark skin tone
|
||||
1F468 1F3FF 200D 1F9BD 200D 27A1 FE0F ; fully-qualified # 👨🏿🦽➡️ E15.1 man in manual wheelchair facing right: dark skin tone
|
||||
1F468 1F3FF 200D 1F9BD 200D 27A1 ; minimally-qualified # 👨🏿🦽➡ E15.1 man in manual wheelchair facing right: dark skin tone
|
||||
1F469 200D 1F9BD ; fully-qualified # 👩🦽 E12.0 woman in manual wheelchair
|
||||
1F469 1F3FB 200D 1F9BD ; fully-qualified # 👩🏻🦽 E12.0 woman in manual wheelchair: light skin tone
|
||||
1F469 1F3FC 200D 1F9BD ; fully-qualified # 👩🏼🦽 E12.0 woman in manual wheelchair: medium-light skin tone
|
||||
1F469 1F3FD 200D 1F9BD ; fully-qualified # 👩🏽🦽 E12.0 woman in manual wheelchair: medium skin tone
|
||||
1F469 1F3FE 200D 1F9BD ; fully-qualified # 👩🏾🦽 E12.0 woman in manual wheelchair: medium-dark skin tone
|
||||
1F469 1F3FF 200D 1F9BD ; fully-qualified # 👩🏿🦽 E12.0 woman in manual wheelchair: dark skin tone
|
||||
1F469 200D 1F9BD 200D 27A1 FE0F ; fully-qualified # 👩🦽➡️ E15.1 woman in manual wheelchair facing right
|
||||
1F469 200D 1F9BD 200D 27A1 ; minimally-qualified # 👩🦽➡ E15.1 woman in manual wheelchair facing right
|
||||
1F469 1F3FB 200D 1F9BD 200D 27A1 FE0F ; fully-qualified # 👩🏻🦽➡️ E15.1 woman in manual wheelchair facing right: light skin tone
|
||||
1F469 1F3FB 200D 1F9BD 200D 27A1 ; minimally-qualified # 👩🏻🦽➡ E15.1 woman in manual wheelchair facing right: light skin tone
|
||||
1F469 1F3FC 200D 1F9BD 200D 27A1 FE0F ; fully-qualified # 👩🏼🦽➡️ E15.1 woman in manual wheelchair facing right: medium-light skin tone
|
||||
1F469 1F3FC 200D 1F9BD 200D 27A1 ; minimally-qualified # 👩🏼🦽➡ E15.1 woman in manual wheelchair facing right: medium-light skin tone
|
||||
1F469 1F3FD 200D 1F9BD 200D 27A1 FE0F ; fully-qualified # 👩🏽🦽➡️ E15.1 woman in manual wheelchair facing right: medium skin tone
|
||||
1F469 1F3FD 200D 1F9BD 200D 27A1 ; minimally-qualified # 👩🏽🦽➡ E15.1 woman in manual wheelchair facing right: medium skin tone
|
||||
1F469 1F3FE 200D 1F9BD 200D 27A1 FE0F ; fully-qualified # 👩🏾🦽➡️ E15.1 woman in manual wheelchair facing right: medium-dark skin tone
|
||||
1F469 1F3FE 200D 1F9BD 200D 27A1 ; minimally-qualified # 👩🏾🦽➡ E15.1 woman in manual wheelchair facing right: medium-dark skin tone
|
||||
1F469 1F3FF 200D 1F9BD 200D 27A1 FE0F ; fully-qualified # 👩🏿🦽➡️ E15.1 woman in manual wheelchair facing right: dark skin tone
|
||||
1F469 1F3FF 200D 1F9BD 200D 27A1 ; minimally-qualified # 👩🏿🦽➡ E15.1 woman in manual wheelchair facing right: dark skin tone
|
||||
1F3C3 ; fully-qualified # 🏃 E0.6 person running
|
||||
1F3C3 1F3FB ; fully-qualified # 🏃🏻 E1.0 person running: light skin tone
|
||||
1F3C3 1F3FC ; fully-qualified # 🏃🏼 E1.0 person running: medium-light skin tone
|
||||
|
@ -2209,6 +2441,66 @@
|
|||
1F3C3 1F3FE 200D 2640 ; minimally-qualified # 🏃🏾♀ E4.0 woman running: medium-dark skin tone
|
||||
1F3C3 1F3FF 200D 2640 FE0F ; fully-qualified # 🏃🏿♀️ E4.0 woman running: dark skin tone
|
||||
1F3C3 1F3FF 200D 2640 ; minimally-qualified # 🏃🏿♀ E4.0 woman running: dark skin tone
|
||||
1F3C3 200D 27A1 FE0F ; fully-qualified # 🏃➡️ E15.1 person running facing right
|
||||
1F3C3 200D 27A1 ; minimally-qualified # 🏃➡ E15.1 person running facing right
|
||||
1F3C3 1F3FB 200D 27A1 FE0F ; fully-qualified # 🏃🏻➡️ E15.1 person running facing right: light skin tone
|
||||
1F3C3 1F3FB 200D 27A1 ; minimally-qualified # 🏃🏻➡ E15.1 person running facing right: light skin tone
|
||||
1F3C3 1F3FC 200D 27A1 FE0F ; fully-qualified # 🏃🏼➡️ E15.1 person running facing right: medium-light skin tone
|
||||
1F3C3 1F3FC 200D 27A1 ; minimally-qualified # 🏃🏼➡ E15.1 person running facing right: medium-light skin tone
|
||||
1F3C3 1F3FD 200D 27A1 FE0F ; fully-qualified # 🏃🏽➡️ E15.1 person running facing right: medium skin tone
|
||||
1F3C3 1F3FD 200D 27A1 ; minimally-qualified # 🏃🏽➡ E15.1 person running facing right: medium skin tone
|
||||
1F3C3 1F3FE 200D 27A1 FE0F ; fully-qualified # 🏃🏾➡️ E15.1 person running facing right: medium-dark skin tone
|
||||
1F3C3 1F3FE 200D 27A1 ; minimally-qualified # 🏃🏾➡ E15.1 person running facing right: medium-dark skin tone
|
||||
1F3C3 1F3FF 200D 27A1 FE0F ; fully-qualified # 🏃🏿➡️ E15.1 person running facing right: dark skin tone
|
||||
1F3C3 1F3FF 200D 27A1 ; minimally-qualified # 🏃🏿➡ E15.1 person running facing right: dark skin tone
|
||||
1F3C3 200D 2640 FE0F 200D 27A1 FE0F ; fully-qualified # 🏃♀️➡️ E15.1 woman running facing right
|
||||
1F3C3 200D 2640 200D 27A1 FE0F ; minimally-qualified # 🏃♀➡️ E15.1 woman running facing right
|
||||
1F3C3 200D 2640 FE0F 200D 27A1 ; minimally-qualified # 🏃♀️➡ E15.1 woman running facing right
|
||||
1F3C3 200D 2640 200D 27A1 ; minimally-qualified # 🏃♀➡ E15.1 woman running facing right
|
||||
1F3C3 1F3FB 200D 2640 FE0F 200D 27A1 FE0F ; fully-qualified # 🏃🏻♀️➡️ E15.1 woman running facing right: light skin tone
|
||||
1F3C3 1F3FB 200D 2640 200D 27A1 FE0F ; minimally-qualified # 🏃🏻♀➡️ E15.1 woman running facing right: light skin tone
|
||||
1F3C3 1F3FB 200D 2640 FE0F 200D 27A1 ; minimally-qualified # 🏃🏻♀️➡ E15.1 woman running facing right: light skin tone
|
||||
1F3C3 1F3FB 200D 2640 200D 27A1 ; minimally-qualified # 🏃🏻♀➡ E15.1 woman running facing right: light skin tone
|
||||
1F3C3 1F3FC 200D 2640 FE0F 200D 27A1 FE0F ; fully-qualified # 🏃🏼♀️➡️ E15.1 woman running facing right: medium-light skin tone
|
||||
1F3C3 1F3FC 200D 2640 200D 27A1 FE0F ; minimally-qualified # 🏃🏼♀➡️ E15.1 woman running facing right: medium-light skin tone
|
||||
1F3C3 1F3FC 200D 2640 FE0F 200D 27A1 ; minimally-qualified # 🏃🏼♀️➡ E15.1 woman running facing right: medium-light skin tone
|
||||
1F3C3 1F3FC 200D 2640 200D 27A1 ; minimally-qualified # 🏃🏼♀➡ E15.1 woman running facing right: medium-light skin tone
|
||||
1F3C3 1F3FD 200D 2640 FE0F 200D 27A1 FE0F ; fully-qualified # 🏃🏽♀️➡️ E15.1 woman running facing right: medium skin tone
|
||||
1F3C3 1F3FD 200D 2640 200D 27A1 FE0F ; minimally-qualified # 🏃🏽♀➡️ E15.1 woman running facing right: medium skin tone
|
||||
1F3C3 1F3FD 200D 2640 FE0F 200D 27A1 ; minimally-qualified # 🏃🏽♀️➡ E15.1 woman running facing right: medium skin tone
|
||||
1F3C3 1F3FD 200D 2640 200D 27A1 ; minimally-qualified # 🏃🏽♀➡ E15.1 woman running facing right: medium skin tone
|
||||
1F3C3 1F3FE 200D 2640 FE0F 200D 27A1 FE0F ; fully-qualified # 🏃🏾♀️➡️ E15.1 woman running facing right: medium-dark skin tone
|
||||
1F3C3 1F3FE 200D 2640 200D 27A1 FE0F ; minimally-qualified # 🏃🏾♀➡️ E15.1 woman running facing right: medium-dark skin tone
|
||||
1F3C3 1F3FE 200D 2640 FE0F 200D 27A1 ; minimally-qualified # 🏃🏾♀️➡ E15.1 woman running facing right: medium-dark skin tone
|
||||
1F3C3 1F3FE 200D 2640 200D 27A1 ; minimally-qualified # 🏃🏾♀➡ E15.1 woman running facing right: medium-dark skin tone
|
||||
1F3C3 1F3FF 200D 2640 FE0F 200D 27A1 FE0F ; fully-qualified # 🏃🏿♀️➡️ E15.1 woman running facing right: dark skin tone
|
||||
1F3C3 1F3FF 200D 2640 200D 27A1 FE0F ; minimally-qualified # 🏃🏿♀➡️ E15.1 woman running facing right: dark skin tone
|
||||
1F3C3 1F3FF 200D 2640 FE0F 200D 27A1 ; minimally-qualified # 🏃🏿♀️➡ E15.1 woman running facing right: dark skin tone
|
||||
1F3C3 1F3FF 200D 2640 200D 27A1 ; minimally-qualified # 🏃🏿♀➡ E15.1 woman running facing right: dark skin tone
|
||||
1F3C3 200D 2642 FE0F 200D 27A1 FE0F ; fully-qualified # 🏃♂️➡️ E15.1 man running facing right
|
||||
1F3C3 200D 2642 200D 27A1 FE0F ; minimally-qualified # 🏃♂➡️ E15.1 man running facing right
|
||||
1F3C3 200D 2642 FE0F 200D 27A1 ; minimally-qualified # 🏃♂️➡ E15.1 man running facing right
|
||||
1F3C3 200D 2642 200D 27A1 ; minimally-qualified # 🏃♂➡ E15.1 man running facing right
|
||||
1F3C3 1F3FB 200D 2642 FE0F 200D 27A1 FE0F ; fully-qualified # 🏃🏻♂️➡️ E15.1 man running facing right: light skin tone
|
||||
1F3C3 1F3FB 200D 2642 200D 27A1 FE0F ; minimally-qualified # 🏃🏻♂➡️ E15.1 man running facing right: light skin tone
|
||||
1F3C3 1F3FB 200D 2642 FE0F 200D 27A1 ; minimally-qualified # 🏃🏻♂️➡ E15.1 man running facing right: light skin tone
|
||||
1F3C3 1F3FB 200D 2642 200D 27A1 ; minimally-qualified # 🏃🏻♂➡ E15.1 man running facing right: light skin tone
|
||||
1F3C3 1F3FC 200D 2642 FE0F 200D 27A1 FE0F ; fully-qualified # 🏃🏼♂️➡️ E15.1 man running facing right: medium-light skin tone
|
||||
1F3C3 1F3FC 200D 2642 200D 27A1 FE0F ; minimally-qualified # 🏃🏼♂➡️ E15.1 man running facing right: medium-light skin tone
|
||||
1F3C3 1F3FC 200D 2642 FE0F 200D 27A1 ; minimally-qualified # 🏃🏼♂️➡ E15.1 man running facing right: medium-light skin tone
|
||||
1F3C3 1F3FC 200D 2642 200D 27A1 ; minimally-qualified # 🏃🏼♂➡ E15.1 man running facing right: medium-light skin tone
|
||||
1F3C3 1F3FD 200D 2642 FE0F 200D 27A1 FE0F ; fully-qualified # 🏃🏽♂️➡️ E15.1 man running facing right: medium skin tone
|
||||
1F3C3 1F3FD 200D 2642 200D 27A1 FE0F ; minimally-qualified # 🏃🏽♂➡️ E15.1 man running facing right: medium skin tone
|
||||
1F3C3 1F3FD 200D 2642 FE0F 200D 27A1 ; minimally-qualified # 🏃🏽♂️➡ E15.1 man running facing right: medium skin tone
|
||||
1F3C3 1F3FD 200D 2642 200D 27A1 ; minimally-qualified # 🏃🏽♂➡ E15.1 man running facing right: medium skin tone
|
||||
1F3C3 1F3FE 200D 2642 FE0F 200D 27A1 FE0F ; fully-qualified # 🏃🏾♂️➡️ E15.1 man running facing right: medium-dark skin tone
|
||||
1F3C3 1F3FE 200D 2642 200D 27A1 FE0F ; minimally-qualified # 🏃🏾♂➡️ E15.1 man running facing right: medium-dark skin tone
|
||||
1F3C3 1F3FE 200D 2642 FE0F 200D 27A1 ; minimally-qualified # 🏃🏾♂️➡ E15.1 man running facing right: medium-dark skin tone
|
||||
1F3C3 1F3FE 200D 2642 200D 27A1 ; minimally-qualified # 🏃🏾♂➡ E15.1 man running facing right: medium-dark skin tone
|
||||
1F3C3 1F3FF 200D 2642 FE0F 200D 27A1 FE0F ; fully-qualified # 🏃🏿♂️➡️ E15.1 man running facing right: dark skin tone
|
||||
1F3C3 1F3FF 200D 2642 200D 27A1 FE0F ; minimally-qualified # 🏃🏿♂➡️ E15.1 man running facing right: dark skin tone
|
||||
1F3C3 1F3FF 200D 2642 FE0F 200D 27A1 ; minimally-qualified # 🏃🏿♂️➡ E15.1 man running facing right: dark skin tone
|
||||
1F3C3 1F3FF 200D 2642 200D 27A1 ; minimally-qualified # 🏃🏿♂➡ E15.1 man running facing right: dark skin tone
|
||||
1F483 ; fully-qualified # 💃 E0.6 woman dancing
|
||||
1F483 1F3FB ; fully-qualified # 💃🏻 E1.0 woman dancing: light skin tone
|
||||
1F483 1F3FC ; fully-qualified # 💃🏼 E1.0 woman dancing: medium-light skin tone
|
||||
|
@ -3244,7 +3536,6 @@
|
|||
1F469 1F3FF 200D 2764 200D 1F469 1F3FE ; minimally-qualified # 👩🏿❤👩🏾 E13.1 couple with heart: woman, woman, dark skin tone, medium-dark skin tone
|
||||
1F469 1F3FF 200D 2764 FE0F 200D 1F469 1F3FF ; fully-qualified # 👩🏿❤️👩🏿 E13.1 couple with heart: woman, woman, dark skin tone
|
||||
1F469 1F3FF 200D 2764 200D 1F469 1F3FF ; minimally-qualified # 👩🏿❤👩🏿 E13.1 couple with heart: woman, woman, dark skin tone
|
||||
1F46A ; fully-qualified # 👪 E0.6 family
|
||||
1F468 200D 1F469 200D 1F466 ; fully-qualified # 👨👩👦 E2.0 family: man, woman, boy
|
||||
1F468 200D 1F469 200D 1F467 ; fully-qualified # 👨👩👧 E2.0 family: man, woman, girl
|
||||
1F468 200D 1F469 200D 1F467 200D 1F466 ; fully-qualified # 👨👩👧👦 E2.0 family: man, woman, girl, boy
|
||||
|
@ -3277,10 +3568,15 @@
|
|||
1F464 ; fully-qualified # 👤 E0.6 bust in silhouette
|
||||
1F465 ; fully-qualified # 👥 E1.0 busts in silhouette
|
||||
1FAC2 ; fully-qualified # 🫂 E13.0 people hugging
|
||||
1F46A ; fully-qualified # 👪 E0.6 family
|
||||
1F9D1 200D 1F9D1 200D 1F9D2 ; fully-qualified # 🧑🧑🧒 E15.1 family: adult, adult, child
|
||||
1F9D1 200D 1F9D1 200D 1F9D2 200D 1F9D2 ; fully-qualified # 🧑🧑🧒🧒 E15.1 family: adult, adult, child, child
|
||||
1F9D1 200D 1F9D2 ; fully-qualified # 🧑🧒 E15.1 family: adult, child
|
||||
1F9D1 200D 1F9D2 200D 1F9D2 ; fully-qualified # 🧑🧒🧒 E15.1 family: adult, child, child
|
||||
1F463 ; fully-qualified # 👣 E0.6 footprints
|
||||
|
||||
# People & Body subtotal: 2998
|
||||
# People & Body subtotal: 508 w/o modifiers
|
||||
# People & Body subtotal: 3290
|
||||
# People & Body subtotal: 560 w/o modifiers
|
||||
|
||||
# group: Component
|
||||
|
||||
|
@ -3395,6 +3691,7 @@
|
|||
1FABD ; fully-qualified # 🪽 E15.0 wing
|
||||
1F426 200D 2B1B ; fully-qualified # 🐦⬛ E15.0 black bird
|
||||
1FABF ; fully-qualified # 🪿 E15.0 goose
|
||||
1F426 200D 1F525 ; fully-qualified # 🐦🔥 E15.1 phoenix
|
||||
|
||||
# subgroup: animal-amphibian
|
||||
1F438 ; fully-qualified # 🐸 E0.6 frog
|
||||
|
@ -3477,8 +3774,8 @@
|
|||
1FABA ; fully-qualified # 🪺 E14.0 nest with eggs
|
||||
1F344 ; fully-qualified # 🍄 E0.6 mushroom
|
||||
|
||||
# Animals & Nature subtotal: 159
|
||||
# Animals & Nature subtotal: 159 w/o modifiers
|
||||
# Animals & Nature subtotal: 160
|
||||
# Animals & Nature subtotal: 160 w/o modifiers
|
||||
|
||||
# group: Food & Drink
|
||||
|
||||
|
@ -3488,6 +3785,7 @@
|
|||
1F349 ; fully-qualified # 🍉 E0.6 watermelon
|
||||
1F34A ; fully-qualified # 🍊 E0.6 tangerine
|
||||
1F34B ; fully-qualified # 🍋 E1.0 lemon
|
||||
1F34B 200D 1F7E9 ; fully-qualified # 🍋🟩 E15.1 lime
|
||||
1F34C ; fully-qualified # 🍌 E0.6 banana
|
||||
1F34D ; fully-qualified # 🍍 E0.6 pineapple
|
||||
1F96D ; fully-qualified # 🥭 E11.0 mango
|
||||
|
@ -3522,6 +3820,7 @@
|
|||
1F330 ; fully-qualified # 🌰 E0.6 chestnut
|
||||
1FADA ; fully-qualified # 🫚 E15.0 ginger root
|
||||
1FADB ; fully-qualified # 🫛 E15.0 pea pod
|
||||
1F344 200D 1F7EB ; fully-qualified # 🍄🟫 E15.1 brown mushroom
|
||||
|
||||
# subgroup: food-prepared
|
||||
1F35E ; fully-qualified # 🍞 E0.6 bread
|
||||
|
@ -3633,8 +3932,8 @@
|
|||
1FAD9 ; fully-qualified # 🫙 E14.0 jar
|
||||
1F3FA ; fully-qualified # 🏺 E1.0 amphora
|
||||
|
||||
# Food & Drink subtotal: 135
|
||||
# Food & Drink subtotal: 135 w/o modifiers
|
||||
# Food & Drink subtotal: 137
|
||||
# Food & Drink subtotal: 137 w/o modifiers
|
||||
|
||||
# group: Travel & Places
|
||||
|
||||
|
@ -4321,6 +4620,8 @@
|
|||
2696 ; unqualified # ⚖ E1.0 balance scale
|
||||
1F9AF ; fully-qualified # 🦯 E12.0 white cane
|
||||
1F517 ; fully-qualified # 🔗 E0.6 link
|
||||
26D3 FE0F 200D 1F4A5 ; fully-qualified # ⛓️💥 E15.1 broken chain
|
||||
26D3 200D 1F4A5 ; unqualified # ⛓💥 E15.1 broken chain
|
||||
26D3 FE0F ; fully-qualified # ⛓️ E0.7 chains
|
||||
26D3 ; unqualified # ⛓ E0.7 chains
|
||||
1FA9D ; fully-qualified # 🪝 E13.0 hook
|
||||
|
@ -4389,8 +4690,8 @@
|
|||
1FAA7 ; fully-qualified # 🪧 E13.0 placard
|
||||
1FAAA ; fully-qualified # 🪪 E14.0 identification card
|
||||
|
||||
# Objects subtotal: 310
|
||||
# Objects subtotal: 310 w/o modifiers
|
||||
# Objects subtotal: 312
|
||||
# Objects subtotal: 312 w/o modifiers
|
||||
|
||||
# group: Symbols
|
||||
|
||||
|
@ -4979,7 +5280,7 @@
|
|||
1F1F9 1F1F2 ; fully-qualified # 🇹🇲 E2.0 flag: Turkmenistan
|
||||
1F1F9 1F1F3 ; fully-qualified # 🇹🇳 E2.0 flag: Tunisia
|
||||
1F1F9 1F1F4 ; fully-qualified # 🇹🇴 E2.0 flag: Tonga
|
||||
1F1F9 1F1F7 ; fully-qualified # 🇹🇷 E2.0 flag: Turkey
|
||||
1F1F9 1F1F7 ; fully-qualified # 🇹🇷 E2.0 flag: Türkiye
|
||||
1F1F9 1F1F9 ; fully-qualified # 🇹🇹 E2.0 flag: Trinidad & Tobago
|
||||
1F1F9 1F1FB ; fully-qualified # 🇹🇻 E2.0 flag: Tuvalu
|
||||
1F1F9 1F1FC ; fully-qualified # 🇹🇼 E2.0 flag: Taiwan
|
||||
|
@ -5016,9 +5317,9 @@
|
|||
# Flags subtotal: 275 w/o modifiers
|
||||
|
||||
# Status Counts
|
||||
# fully-qualified : 3655
|
||||
# minimally-qualified : 827
|
||||
# unqualified : 242
|
||||
# fully-qualified : 3773
|
||||
# minimally-qualified : 1009
|
||||
# unqualified : 243
|
||||
# component : 9
|
||||
|
||||
#EOF
|
||||
|
|
11
resources/provider-head.txt
Normal file
11
resources/provider-head.txt
Normal file
|
@ -0,0 +1,11 @@
|
|||
// SPDX-FileCopyrightText: Nheko Contributors
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// DO NOT EDIT PROVIDER.CPP DIRECTLY! EDIT resources/provider-head.txt AND RUN scripts/codegen.sh!
|
||||
|
||||
#include "emoji/Provider.h"
|
||||
|
||||
using namespace emoji;
|
||||
|
||||
constexpr
|
|
@ -1,18 +0,0 @@
|
|||
// SPDX-FileCopyrightText: 2021 Nheko Contributors
|
||||
// SPDX-FileCopyrightText: 2022 Nheko Contributors
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
#include "emoji/Provider.h"
|
||||
|
||||
using namespace emoji;
|
||||
|
||||
// a null terminated string_view
|
||||
template<size_t N>
|
||||
static consteval std::u16string_view
|
||||
null_literal(const char16_t (&lit)[N])
|
||||
{
|
||||
return std::u16string_view(lit, N);
|
||||
}
|
||||
|
||||
|
|
@ -20,7 +20,7 @@
|
|||
1F523:symbols
|
||||
1F524:abc
|
||||
1F60D:heart_eyes
|
||||
1F927:cry_smile
|
||||
1F972:cry_smile
|
||||
1F608:smiling_imp
|
||||
1F47F:imp
|
||||
1F261:rage
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
#!/bin/bash
|
||||
ROOT=$(realpath "$PWD/$(dirname "$0")/..")
|
||||
cd $ROOT
|
||||
cat resources/provider-header.txt > src/emoji/Provider.cpp
|
||||
cat resources/provider-head.txt > src/emoji/Provider.cpp
|
||||
cat resources/extra_emoji.txt resources/emoji-test.txt > resources/complete-emoji.txt
|
||||
scripts/emoji_codegen.py resources/complete-emoji.txt resources/shortcodes.txt >> src/emoji/Provider.cpp
|
||||
scripts/emoji_codegen.py impl resources/complete-emoji.txt resources/shortcodes.txt >> src/emoji/Provider.cpp
|
||||
scripts/emoji_codegen.py header resources/complete-emoji.txt resources/shortcodes.txt > src/emoji/Provider.h
|
||||
cd - > /dev/null
|
||||
|
|
|
@ -12,10 +12,34 @@ class Emoji(object):
|
|||
self.shortname = shortname
|
||||
self.unicodename = unicodename
|
||||
|
||||
def generate_provider_class(**kwargs):
|
||||
entrycount = sum([len(c[1]) for c in kwargs.items()])
|
||||
tmpl = Template('''\
|
||||
// SPDX-FileCopyrightText: Nheko Contributors
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// DO NOT EDIT Provider.h DIRECTLY! EDIT IT IN scripts/emoji_codegen.py AND RUN scripts/codegen.sh!
|
||||
|
||||
#pragma once
|
||||
#include <array>
|
||||
#include "Emoji.h"
|
||||
|
||||
namespace emoji {
|
||||
class Provider
|
||||
{
|
||||
public:
|
||||
// all emoji for QML purposes
|
||||
static const std::array<Emoji, {{ entrycount }}> emoji;
|
||||
};
|
||||
} // namespace emoji
|
||||
''')
|
||||
d = dict(entrycount=entrycount)
|
||||
print(tmpl.render(d))
|
||||
def generate_qml_list(**kwargs):
|
||||
entrycount = sum([len(c[1]) for c in kwargs.items()])
|
||||
tmpl = Template('''
|
||||
constexpr const std::array<Emoji, {{ entrycount }} > emoji::Provider::emoji = {
|
||||
std::array<Emoji, {{ entrycount }} > emoji::Provider::emoji = {
|
||||
{%- for c in kwargs.items() %}
|
||||
// {{ c[0].capitalize() }}
|
||||
{%- for e in c[1] %}
|
||||
|
@ -26,13 +50,19 @@ constexpr const std::array<Emoji, {{ entrycount }} > emoji::Provider::emoji = {
|
|||
''')
|
||||
d = dict(kwargs=kwargs, entrycount=entrycount)
|
||||
print(tmpl.render(d))
|
||||
def usage():
|
||||
print('usage: emoji_codegen.py {impl|header} /path/to/emoji-test /path/to/shortcodes.txt')
|
||||
if __name__ == '__main__':
|
||||
if len(sys.argv) < 3:
|
||||
print('usage: emoji_codegen.py /path/to/emoji-test.txt /path/to/shortcodes.txt')
|
||||
if len(sys.argv) < 4:
|
||||
usage()
|
||||
sys.exit(1)
|
||||
|
||||
filename = sys.argv[1]
|
||||
shortcodefilename = sys.argv[2]
|
||||
mode = sys.argv[1]
|
||||
if mode != 'impl' and mode != 'header':
|
||||
usage()
|
||||
sys.exit(1)
|
||||
filename = sys.argv[2]
|
||||
shortcodefilename = sys.argv[3]
|
||||
|
||||
people = []
|
||||
nature = []
|
||||
|
@ -99,7 +129,7 @@ if __name__ == '__main__':
|
|||
if shortname.endswith(': curly hair'):
|
||||
shortname = "curly_haired_" + shortname[:-12]
|
||||
if shortname.endswith(': white hair'):
|
||||
shortname = "white_haried_" + shortname[:-12]
|
||||
shortname = "white_haired_" + shortname[:-12]
|
||||
if shortname.endswith(': bald'):
|
||||
shortname = "bald_" + shortname[:-6]
|
||||
if shortname.endswith(': beard'):
|
||||
|
@ -134,4 +164,9 @@ if __name__ == '__main__':
|
|||
# Use xclip to pipe the output to clipboard.
|
||||
# e.g ./emoji_codegen.py emoji.json | xclip -sel clip
|
||||
# alternatively - delete the var from src/emoji/Provider.cpp, and do ./codegen.sh emojis shortcodes >> ../src/emoji/Provider.cpp
|
||||
generate_qml_list(people=people, nature=nature, food=food, activity=activity, travel=travel, objects=objects, symbols=symbols, flags=flags)
|
||||
func = None
|
||||
if mode == 'impl':
|
||||
func = generate_qml_list
|
||||
else:
|
||||
func = generate_provider_class
|
||||
func(people=people, nature=nature, food=food, activity=activity, travel=travel, objects=objects, symbols=symbols, flags=flags)
|
||||
|
|
|
@ -12,31 +12,6 @@
|
|||
#include "Cache.h"
|
||||
#include "emoji/Provider.h"
|
||||
|
||||
QString
|
||||
emoji::categoryToName(emoji::Emoji::Category cat)
|
||||
{
|
||||
switch (cat) {
|
||||
case emoji::Emoji::Category::People:
|
||||
return QCoreApplication::translate("emoji-catagory", "People");
|
||||
case emoji::Emoji::Category::Nature:
|
||||
return QCoreApplication::translate("emoji-catagory", "Nature");
|
||||
case emoji::Emoji::Category::Food:
|
||||
return QCoreApplication::translate("emoji-catagory", "Food");
|
||||
case emoji::Emoji::Category::Activity:
|
||||
return QCoreApplication::translate("emoji-catagory", "Activity");
|
||||
case emoji::Emoji::Category::Travel:
|
||||
return QCoreApplication::translate("emoji-catagory", "Travel");
|
||||
case emoji::Emoji::Category::Objects:
|
||||
return QCoreApplication::translate("emoji-catagory", "Objects");
|
||||
case emoji::Emoji::Category::Symbols:
|
||||
return QCoreApplication::translate("emoji-catagory", "Symbols");
|
||||
case emoji::Emoji::Category::Flags:
|
||||
return QCoreApplication::translate("emoji-catagory", "Flags");
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
static QString
|
||||
categoryToIcon(emoji::Emoji::Category cat)
|
||||
{
|
||||
|
|
33
src/emoji/Emoji.cpp
Normal file
33
src/emoji/Emoji.cpp
Normal file
|
@ -0,0 +1,33 @@
|
|||
// SPDX-FileCopyrightText: Nheko Contributors
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
#include "Emoji.h"
|
||||
|
||||
#include <QCoreApplication>
|
||||
QString
|
||||
emoji::categoryToName(emoji::Emoji::Category cat)
|
||||
{
|
||||
switch (cat) {
|
||||
case emoji::Emoji::Category::People:
|
||||
return QCoreApplication::translate("emoji-catagory", "People");
|
||||
case emoji::Emoji::Category::Nature:
|
||||
return QCoreApplication::translate("emoji-catagory", "Nature");
|
||||
case emoji::Emoji::Category::Food:
|
||||
return QCoreApplication::translate("emoji-catagory", "Food");
|
||||
case emoji::Emoji::Category::Activity:
|
||||
return QCoreApplication::translate("emoji-catagory", "Activity");
|
||||
case emoji::Emoji::Category::Travel:
|
||||
return QCoreApplication::translate("emoji-catagory", "Travel");
|
||||
case emoji::Emoji::Category::Objects:
|
||||
return QCoreApplication::translate("emoji-catagory", "Objects");
|
||||
case emoji::Emoji::Category::Symbols:
|
||||
return QCoreApplication::translate("emoji-catagory", "Symbols");
|
||||
case emoji::Emoji::Category::Flags:
|
||||
return QCoreApplication::translate("emoji-catagory", "Flags");
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
#include "moc_Emoji.cpp"
|
88
src/emoji/Emoji.h
Normal file
88
src/emoji/Emoji.h
Normal file
|
@ -0,0 +1,88 @@
|
|||
// SPDX-FileCopyrightText: Nheko Contributors
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <QObject>
|
||||
|
||||
namespace emoji {
|
||||
Q_NAMESPACE
|
||||
|
||||
struct Emoji
|
||||
{
|
||||
Q_GADGET
|
||||
public:
|
||||
enum class Category
|
||||
{
|
||||
People,
|
||||
Nature,
|
||||
Food,
|
||||
Activity,
|
||||
Travel,
|
||||
Objects,
|
||||
Symbols,
|
||||
Flags,
|
||||
Search
|
||||
};
|
||||
Q_ENUM(Category)
|
||||
|
||||
Q_PROPERTY(QString unicode READ unicode CONSTANT)
|
||||
Q_PROPERTY(QString shortName READ shortName CONSTANT)
|
||||
Q_PROPERTY(QString unicodeName READ unicodeName CONSTANT)
|
||||
Q_PROPERTY(emoji::Emoji::Category category MEMBER category)
|
||||
|
||||
public:
|
||||
constexpr Emoji(std::u16string_view unicode,
|
||||
std::u16string_view shortName,
|
||||
std::u16string_view unicodeName,
|
||||
Category cat)
|
||||
: unicode_(unicode)
|
||||
, shortName_(shortName)
|
||||
, unicodeName_(unicodeName)
|
||||
, category(cat)
|
||||
{
|
||||
}
|
||||
|
||||
constexpr Emoji()
|
||||
: unicode_(u"", 0)
|
||||
, shortName_(u"", 0)
|
||||
, unicodeName_(u"", 0)
|
||||
, category(Category::Search)
|
||||
{
|
||||
}
|
||||
|
||||
constexpr Emoji(const Emoji &) = default;
|
||||
constexpr Emoji(Emoji &&) = default;
|
||||
|
||||
constexpr Emoji &operator=(const Emoji &) = default;
|
||||
constexpr Emoji &operator=(Emoji &&) = default;
|
||||
|
||||
QString unicode() const
|
||||
{
|
||||
return QString::fromRawData(reinterpret_cast<const QChar *>(unicode_.data()),
|
||||
unicode_.size());
|
||||
}
|
||||
QString shortName() const
|
||||
{
|
||||
return QString::fromRawData(reinterpret_cast<const QChar *>(shortName_.data()),
|
||||
shortName_.size());
|
||||
}
|
||||
QString unicodeName() const
|
||||
{
|
||||
return QString::fromRawData(reinterpret_cast<const QChar *>(unicodeName_.data()),
|
||||
unicodeName_.size());
|
||||
}
|
||||
|
||||
private:
|
||||
std::u16string_view unicode_;
|
||||
std::u16string_view shortName_;
|
||||
std::u16string_view unicodeName_;
|
||||
|
||||
public:
|
||||
Category category;
|
||||
};
|
||||
|
||||
QString
|
||||
categoryToName(emoji::Emoji::Category cat);
|
||||
} // namespace emoji
|
File diff suppressed because it is too large
Load diff
|
@ -2,95 +2,17 @@
|
|||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
#pragma once
|
||||
// DO NOT EDIT Provider.h DIRECTLY! EDIT IT IN scripts/emoji_codegen.py AND RUN scripts/codegen.sh!
|
||||
|
||||
#include <QObject>
|
||||
#pragma once
|
||||
#include "Emoji.h"
|
||||
#include <array>
|
||||
|
||||
namespace emoji {
|
||||
Q_NAMESPACE
|
||||
|
||||
struct Emoji
|
||||
{
|
||||
Q_GADGET
|
||||
public:
|
||||
enum class Category
|
||||
{
|
||||
People,
|
||||
Nature,
|
||||
Food,
|
||||
Activity,
|
||||
Travel,
|
||||
Objects,
|
||||
Symbols,
|
||||
Flags,
|
||||
Search
|
||||
};
|
||||
Q_ENUM(Category)
|
||||
|
||||
Q_PROPERTY(QString unicode READ unicode CONSTANT)
|
||||
Q_PROPERTY(QString shortName READ shortName CONSTANT)
|
||||
Q_PROPERTY(QString unicodeName READ unicodeName CONSTANT)
|
||||
Q_PROPERTY(emoji::Emoji::Category category MEMBER category)
|
||||
|
||||
public:
|
||||
constexpr Emoji(std::u16string_view unicode,
|
||||
std::u16string_view shortName,
|
||||
std::u16string_view unicodeName,
|
||||
Category cat)
|
||||
: unicode_(unicode)
|
||||
, shortName_(shortName)
|
||||
, unicodeName_(unicodeName)
|
||||
, category(cat)
|
||||
{
|
||||
}
|
||||
|
||||
constexpr Emoji()
|
||||
: unicode_(u"", 0)
|
||||
, shortName_(u"", 0)
|
||||
, unicodeName_(u"", 0)
|
||||
, category(Category::Search)
|
||||
{
|
||||
}
|
||||
|
||||
constexpr Emoji(const Emoji &) = default;
|
||||
constexpr Emoji(Emoji &&) = default;
|
||||
|
||||
constexpr Emoji &operator=(const Emoji &) = default;
|
||||
constexpr Emoji &operator=(Emoji &&) = default;
|
||||
|
||||
QString unicode() const
|
||||
{
|
||||
return QString::fromRawData(reinterpret_cast<const QChar *>(unicode_.data()),
|
||||
unicode_.size());
|
||||
}
|
||||
QString shortName() const
|
||||
{
|
||||
return QString::fromRawData(reinterpret_cast<const QChar *>(shortName_.data()),
|
||||
shortName_.size());
|
||||
}
|
||||
QString unicodeName() const
|
||||
{
|
||||
return QString::fromRawData(reinterpret_cast<const QChar *>(unicodeName_.data()),
|
||||
unicodeName_.size());
|
||||
}
|
||||
|
||||
private:
|
||||
std::u16string_view unicode_;
|
||||
std::u16string_view shortName_;
|
||||
std::u16string_view unicodeName_;
|
||||
|
||||
public:
|
||||
Category category;
|
||||
};
|
||||
|
||||
class Provider
|
||||
{
|
||||
public:
|
||||
// all emoji for QML purposes
|
||||
static const std::array<Emoji, 3681> emoji;
|
||||
static const std::array<Emoji, 3799> emoji;
|
||||
};
|
||||
|
||||
QString
|
||||
categoryToName(emoji::Emoji::Category cat);
|
||||
} // namespace emoji
|
||||
|
|
Loading…
Reference in a new issue