Doxygen
emoji.cpp
浏览该文件的文档.
1 /******************************************************************************
2  *
3  * Copyright (C) 1997-2018 by Dimitri van Heesch.
4  *
5  * Permission to use, copy, modify, and distribute this software and its
6  * documentation under the terms of the GNU General Public License is hereby
7  * granted. No representations are made about the suitability of this software
8  * for any purpose. It is provided "as is" without express or implied warranty.
9  * See the GNU General Public License for more details.
10  *
11  * Documents produced by Doxygen are derivative works derived from the
12  * input used in their production; they are not affected by this license.
13  *
14  */
15 
16 #include "emoji.h"
17 #include "message.h"
18 #include "util.h"
19 #include "textstream.h"
20 
21 static struct emojiEntityInfo
22 {
23  const char *name;
24  const char *unicode;
25 } g_emojiEntities[] =
26 /* generated using the download_github_emojis.py script */
27 {
28  { ":+1:", "👍" },
29  { ":-1:", "👎" },
30  { ":100:", "💯" },
31  { ":1234:", "🔢" },
32  { ":1st_place_medal:", "🥇" },
33  { ":2nd_place_medal:", "🥈" },
34  { ":3rd_place_medal:", "🥉" },
35  { ":8ball:", "🎱" },
36  { ":a:", "🅰" },
37  { ":ab:", "🆎" },
38  { ":abc:", "🔤" },
39  { ":abcd:", "🔡" },
40  { ":accept:", "🉑" },
41  { ":aerial_tramway:", "🚡" },
42  { ":afghanistan:", "🇦🇫" },
43  { ":airplane:", "✈" },
44  { ":aland_islands:", "🇦🇽" },
45  { ":alarm_clock:", "⏰" },
46  { ":albania:", "🇦🇱" },
47  { ":alembic:", "⚗" },
48  { ":algeria:", "🇩🇿" },
49  { ":alien:", "👽" },
50  { ":ambulance:", "🚑" },
51  { ":american_samoa:", "🇦🇸" },
52  { ":amphora:", "🏺" },
53  { ":anchor:", "⚓" },
54  { ":andorra:", "🇦🇩" },
55  { ":angel:", "👼" },
56  { ":anger:", "💢" },
57  { ":angola:", "🇦🇴" },
58  { ":angry:", "😠" },
59  { ":anguilla:", "🇦🇮" },
60  { ":anguished:", "😧" },
61  { ":ant:", "🐜" },
62  { ":antarctica:", "🇦🇶" },
63  { ":antigua_barbuda:", "🇦🇬" },
64  { ":apple:", "🍎" },
65  { ":aquarius:", "♒" },
66  { ":argentina:", "🇦🇷" },
67  { ":aries:", "♈" },
68  { ":armenia:", "🇦🇲" },
69  { ":arrow_backward:", "◀" },
70  { ":arrow_double_down:", "⏬" },
71  { ":arrow_double_up:", "⏫" },
72  { ":arrow_down:", "⬇" },
73  { ":arrow_down_small:", "🔽" },
74  { ":arrow_forward:", "▶" },
75  { ":arrow_heading_down:", "⤵" },
76  { ":arrow_heading_up:", "⤴" },
77  { ":arrow_left:", "⬅" },
78  { ":arrow_lower_left:", "↙" },
79  { ":arrow_lower_right:", "↘" },
80  { ":arrow_right:", "➡" },
81  { ":arrow_right_hook:", "↪" },
82  { ":arrow_up:", "⬆" },
83  { ":arrow_up_down:", "↕" },
84  { ":arrow_up_small:", "🔼" },
85  { ":arrow_upper_left:", "↖" },
86  { ":arrow_upper_right:", "↗" },
87  { ":arrows_clockwise:", "🔃" },
88  { ":arrows_counterclockwise:", "🔄" },
89  { ":art:", "🎨" },
90  { ":articulated_lorry:", "🚛" },
91  { ":artificial_satellite:", "🛰" },
92  { ":aruba:", "🇦🇼" },
93  { ":asterisk:", "*⃣" },
94  { ":astonished:", "😲" },
95  { ":athletic_shoe:", "👟" },
96  { ":atm:", "🏧" },
97  { ":atom_symbol:", "⚛" },
98  { ":australia:", "🇦🇺" },
99  { ":austria:", "🇦🇹" },
100  { ":avocado:", "🥑" },
101  { ":azerbaijan:", "🇦🇿" },
102  { ":b:", "🅱" },
103  { ":baby:", "👶" },
104  { ":baby_bottle:", "🍼" },
105  { ":baby_chick:", "🐤" },
106  { ":baby_symbol:", "🚼" },
107  { ":back:", "🔙" },
108  { ":bacon:", "🥓" },
109  { ":badminton:", "🏸" },
110  { ":baggage_claim:", "🛄" },
111  { ":baguette_bread:", "🥖" },
112  { ":bahamas:", "🇧🇸" },
113  { ":bahrain:", "🇧🇭" },
114  { ":balance_scale:", "⚖" },
115  { ":balloon:", "🎈" },
116  { ":ballot_box:", "🗳" },
117  { ":ballot_box_with_check:", "☑" },
118  { ":bamboo:", "🎍" },
119  { ":banana:", "🍌" },
120  { ":bangbang:", "‼" },
121  { ":bangladesh:", "🇧🇩" },
122  { ":bank:", "🏦" },
123  { ":bar_chart:", "📊" },
124  { ":barbados:", "🇧🇧" },
125  { ":barber:", "💈" },
126  { ":baseball:", "⚾" },
127  { ":basketball:", "🏀" },
128  { ":basketball_man:", "⛹" },
129  { ":basketball_woman:", "⛹♀" },
130  { ":bat:", "🦇" },
131  { ":bath:", "🛀" },
132  { ":bathtub:", "🛁" },
133  { ":battery:", "🔋" },
134  { ":beach_umbrella:", "🏖" },
135  { ":bear:", "🐻" },
136  { ":bed:", "🛏" },
137  { ":bee:", "🐝" },
138  { ":beer:", "🍺" },
139  { ":beers:", "🍻" },
140  { ":beetle:", "🐞" },
141  { ":beginner:", "🔰" },
142  { ":belarus:", "🇧🇾" },
143  { ":belgium:", "🇧🇪" },
144  { ":belize:", "🇧🇿" },
145  { ":bell:", "🔔" },
146  { ":bellhop_bell:", "🛎" },
147  { ":benin:", "🇧🇯" },
148  { ":bento:", "🍱" },
149  { ":bermuda:", "🇧🇲" },
150  { ":bhutan:", "🇧🇹" },
151  { ":bicyclist:", "🚴" },
152  { ":bike:", "🚲" },
153  { ":biking_man:", "🚴" },
154  { ":biking_woman:", "🚴♀" },
155  { ":bikini:", "👙" },
156  { ":biohazard:", "☣" },
157  { ":bird:", "🐦" },
158  { ":birthday:", "🎂" },
159  { ":black_circle:", "⚫" },
160  { ":black_flag:", "🏴" },
161  { ":black_heart:", "🖤" },
162  { ":black_joker:", "🃏" },
163  { ":black_large_square:", "⬛" },
164  { ":black_medium_small_square:", "◾" },
165  { ":black_medium_square:", "◼" },
166  { ":black_nib:", "✒" },
167  { ":black_small_square:", "▪" },
168  { ":black_square_button:", "🔲" },
169  { ":blonde_man:", "👱" },
170  { ":blonde_woman:", "👱♀" },
171  { ":blossom:", "🌼" },
172  { ":blowfish:", "🐡" },
173  { ":blue_book:", "📘" },
174  { ":blue_car:", "🚙" },
175  { ":blue_heart:", "💙" },
176  { ":blush:", "😊" },
177  { ":boar:", "🐗" },
178  { ":boat:", "⛵" },
179  { ":bolivia:", "🇧🇴" },
180  { ":bomb:", "💣" },
181  { ":book:", "📖" },
182  { ":bookmark:", "🔖" },
183  { ":bookmark_tabs:", "📑" },
184  { ":books:", "📚" },
185  { ":boom:", "💥" },
186  { ":boot:", "👢" },
187  { ":bosnia_herzegovina:", "🇧🇦" },
188  { ":botswana:", "🇧🇼" },
189  { ":bouquet:", "💐" },
190  { ":bow:", "🙇" },
191  { ":bow_and_arrow:", "🏹" },
192  { ":bowing_man:", "🙇" },
193  { ":bowing_woman:", "🙇♀" },
194  { ":bowling:", "🎳" },
195  { ":boxing_glove:", "🥊" },
196  { ":boy:", "👦" },
197  { ":brazil:", "🇧🇷" },
198  { ":bread:", "🍞" },
199  { ":bride_with_veil:", "👰" },
200  { ":bridge_at_night:", "🌉" },
201  { ":briefcase:", "💼" },
202  { ":british_indian_ocean_territory:", "🇮🇴" },
203  { ":british_virgin_islands:", "🇻🇬" },
204  { ":broken_heart:", "💔" },
205  { ":brunei:", "🇧🇳" },
206  { ":bug:", "🐛" },
207  { ":building_construction:", "🏗" },
208  { ":bulb:", "💡" },
209  { ":bulgaria:", "🇧🇬" },
210  { ":bullettrain_front:", "🚅" },
211  { ":bullettrain_side:", "🚄" },
212  { ":burkina_faso:", "🇧🇫" },
213  { ":burrito:", "🌯" },
214  { ":burundi:", "🇧🇮" },
215  { ":bus:", "🚌" },
216  { ":business_suit_levitating:", "🕴" },
217  { ":busstop:", "🚏" },
218  { ":bust_in_silhouette:", "👤" },
219  { ":busts_in_silhouette:", "👥" },
220  { ":butterfly:", "🦋" },
221  { ":cactus:", "🌵" },
222  { ":cake:", "🍰" },
223  { ":calendar:", "📆" },
224  { ":call_me_hand:", "🤙" },
225  { ":calling:", "📲" },
226  { ":cambodia:", "🇰🇭" },
227  { ":camel:", "🐫" },
228  { ":camera:", "📷" },
229  { ":camera_flash:", "📸" },
230  { ":cameroon:", "🇨🇲" },
231  { ":camping:", "🏕" },
232  { ":canada:", "🇨🇦" },
233  { ":canary_islands:", "🇮🇨" },
234  { ":cancer:", "♋" },
235  { ":candle:", "🕯" },
236  { ":candy:", "🍬" },
237  { ":canoe:", "🛶" },
238  { ":cape_verde:", "🇨🇻" },
239  { ":capital_abcd:", "🔠" },
240  { ":capricorn:", "♑" },
241  { ":car:", "🚗" },
242  { ":card_file_box:", "🗃" },
243  { ":card_index:", "📇" },
244  { ":card_index_dividers:", "🗂" },
245  { ":caribbean_netherlands:", "🇧🇶" },
246  { ":carousel_horse:", "🎠" },
247  { ":carrot:", "🥕" },
248  { ":cat:", "🐱" },
249  { ":cat2:", "🐈" },
250  { ":cayman_islands:", "🇰🇾" },
251  { ":cd:", "💿" },
252  { ":central_african_republic:", "🇨🇫" },
253  { ":chad:", "🇹🇩" },
254  { ":chains:", "⛓" },
255  { ":champagne:", "🍾" },
256  { ":chart:", "💹" },
257  { ":chart_with_downwards_trend:", "📉" },
258  { ":chart_with_upwards_trend:", "📈" },
259  { ":checkered_flag:", "🏁" },
260  { ":cheese:", "🧀" },
261  { ":cherries:", "🍒" },
262  { ":cherry_blossom:", "🌸" },
263  { ":chestnut:", "🌰" },
264  { ":chicken:", "🐔" },
265  { ":children_crossing:", "🚸" },
266  { ":chile:", "🇨🇱" },
267  { ":chipmunk:", "🐿" },
268  { ":chocolate_bar:", "🍫" },
269  { ":christmas_island:", "🇨🇽" },
270  { ":christmas_tree:", "🎄" },
271  { ":church:", "⛪" },
272  { ":cinema:", "🎦" },
273  { ":circus_tent:", "🎪" },
274  { ":city_sunrise:", "🌇" },
275  { ":city_sunset:", "🌆" },
276  { ":cityscape:", "🏙" },
277  { ":cl:", "🆑" },
278  { ":clamp:", "🗜" },
279  { ":clap:", "👏" },
280  { ":clapper:", "🎬" },
281  { ":classical_building:", "🏛" },
282  { ":clinking_glasses:", "🥂" },
283  { ":clipboard:", "📋" },
284  { ":clock1:", "🕐" },
285  { ":clock10:", "🕙" },
286  { ":clock1030:", "🕥" },
287  { ":clock11:", "🕚" },
288  { ":clock1130:", "🕦" },
289  { ":clock12:", "🕛" },
290  { ":clock1230:", "🕧" },
291  { ":clock130:", "🕜" },
292  { ":clock2:", "🕑" },
293  { ":clock230:", "🕝" },
294  { ":clock3:", "🕒" },
295  { ":clock330:", "🕞" },
296  { ":clock4:", "🕓" },
297  { ":clock430:", "🕟" },
298  { ":clock5:", "🕔" },
299  { ":clock530:", "🕠" },
300  { ":clock6:", "🕕" },
301  { ":clock630:", "🕡" },
302  { ":clock7:", "🕖" },
303  { ":clock730:", "🕢" },
304  { ":clock8:", "🕗" },
305  { ":clock830:", "🕣" },
306  { ":clock9:", "🕘" },
307  { ":clock930:", "🕤" },
308  { ":closed_book:", "📕" },
309  { ":closed_lock_with_key:", "🔐" },
310  { ":closed_umbrella:", "🌂" },
311  { ":cloud:", "☁" },
312  { ":cloud_with_lightning:", "🌩" },
313  { ":cloud_with_lightning_and_rain:", "⛈" },
314  { ":cloud_with_rain:", "🌧" },
315  { ":cloud_with_snow:", "🌨" },
316  { ":clown_face:", "🤡" },
317  { ":clubs:", "♣" },
318  { ":cn:", "🇨🇳" },
319  { ":cocktail:", "🍸" },
320  { ":cocos_islands:", "🇨🇨" },
321  { ":coffee:", "☕" },
322  { ":coffin:", "⚰" },
323  { ":cold_sweat:", "😰" },
324  { ":collision:", "💥" },
325  { ":colombia:", "🇨🇴" },
326  { ":comet:", "☄" },
327  { ":comoros:", "🇰🇲" },
328  { ":computer:", "💻" },
329  { ":computer_mouse:", "🖱" },
330  { ":confetti_ball:", "🎊" },
331  { ":confounded:", "😖" },
332  { ":confused:", "😕" },
333  { ":congo_brazzaville:", "🇨🇬" },
334  { ":congo_kinshasa:", "🇨🇩" },
335  { ":congratulations:", "㊗" },
336  { ":construction:", "🚧" },
337  { ":construction_worker:", "👷" },
338  { ":construction_worker_man:", "👷" },
339  { ":construction_worker_woman:", "👷♀" },
340  { ":control_knobs:", "🎛" },
341  { ":convenience_store:", "🏪" },
342  { ":cook_islands:", "🇨🇰" },
343  { ":cookie:", "🍪" },
344  { ":cool:", "🆒" },
345  { ":cop:", "👮" },
346  { ":copyright:", "©" },
347  { ":corn:", "🌽" },
348  { ":costa_rica:", "🇨🇷" },
349  { ":cote_divoire:", "🇨🇮" },
350  { ":couch_and_lamp:", "🛋" },
351  { ":couple:", "👫" },
352  { ":couple_with_heart:", "💑" },
353  { ":couple_with_heart_man_man:", "👨❤👨" },
354  { ":couple_with_heart_woman_man:", "💑" },
355  { ":couple_with_heart_woman_woman:", "👩❤👩" },
356  { ":couplekiss_man_man:", "👨❤💋👨" },
357  { ":couplekiss_man_woman:", "💏" },
358  { ":couplekiss_woman_woman:", "👩❤💋👩" },
359  { ":cow:", "🐮" },
360  { ":cow2:", "🐄" },
361  { ":cowboy_hat_face:", "🤠" },
362  { ":crab:", "🦀" },
363  { ":crayon:", "🖍" },
364  { ":credit_card:", "💳" },
365  { ":crescent_moon:", "🌙" },
366  { ":cricket:", "🏏" },
367  { ":croatia:", "🇭🇷" },
368  { ":crocodile:", "🐊" },
369  { ":croissant:", "🥐" },
370  { ":crossed_fingers:", "🤞" },
371  { ":crossed_flags:", "🎌" },
372  { ":crossed_swords:", "⚔" },
373  { ":crown:", "👑" },
374  { ":cry:", "😢" },
375  { ":crying_cat_face:", "😿" },
376  { ":crystal_ball:", "🔮" },
377  { ":cuba:", "🇨🇺" },
378  { ":cucumber:", "🥒" },
379  { ":cupid:", "💘" },
380  { ":curacao:", "🇨🇼" },
381  { ":curly_loop:", "➰" },
382  { ":currency_exchange:", "💱" },
383  { ":curry:", "🍛" },
384  { ":custard:", "🍮" },
385  { ":customs:", "🛃" },
386  { ":cyclone:", "🌀" },
387  { ":cyprus:", "🇨🇾" },
388  { ":czech_republic:", "🇨🇿" },
389  { ":dagger:", "🗡" },
390  { ":dancer:", "💃" },
391  { ":dancers:", "👯" },
392  { ":dancing_men:", "👯♂" },
393  { ":dancing_women:", "👯" },
394  { ":dango:", "🍡" },
395  { ":dark_sunglasses:", "🕶" },
396  { ":dart:", "🎯" },
397  { ":dash:", "💨" },
398  { ":date:", "📅" },
399  { ":de:", "🇩🇪" },
400  { ":deciduous_tree:", "🌳" },
401  { ":deer:", "🦌" },
402  { ":denmark:", "🇩🇰" },
403  { ":department_store:", "🏬" },
404  { ":derelict_house:", "🏚" },
405  { ":desert:", "🏜" },
406  { ":desert_island:", "🏝" },
407  { ":desktop_computer:", "🖥" },
408  { ":detective:", "🕵" },
409  { ":diamond_shape_with_a_dot_inside:", "💠" },
410  { ":diamonds:", "♦" },
411  { ":disappointed:", "😞" },
412  { ":disappointed_relieved:", "😥" },
413  { ":dizzy:", "💫" },
414  { ":dizzy_face:", "😵" },
415  { ":djibouti:", "🇩🇯" },
416  { ":do_not_litter:", "🚯" },
417  { ":dog:", "🐶" },
418  { ":dog2:", "🐕" },
419  { ":dollar:", "💵" },
420  { ":dolls:", "🎎" },
421  { ":dolphin:", "🐬" },
422  { ":dominica:", "🇩🇲" },
423  { ":dominican_republic:", "🇩🇴" },
424  { ":door:", "🚪" },
425  { ":doughnut:", "🍩" },
426  { ":dove:", "🕊" },
427  { ":dragon:", "🐉" },
428  { ":dragon_face:", "🐲" },
429  { ":dress:", "👗" },
430  { ":dromedary_camel:", "🐪" },
431  { ":drooling_face:", "🤤" },
432  { ":droplet:", "💧" },
433  { ":drum:", "🥁" },
434  { ":duck:", "🦆" },
435  { ":dvd:", "📀" },
436  { ":e-mail:", "📧" },
437  { ":eagle:", "🦅" },
438  { ":ear:", "👂" },
439  { ":ear_of_rice:", "🌾" },
440  { ":earth_africa:", "🌍" },
441  { ":earth_americas:", "🌎" },
442  { ":earth_asia:", "🌏" },
443  { ":ecuador:", "🇪🇨" },
444  { ":egg:", "🥚" },
445  { ":eggplant:", "🍆" },
446  { ":egypt:", "🇪🇬" },
447  { ":eight:", "8⃣" },
448  { ":eight_pointed_black_star:", "✴" },
449  { ":eight_spoked_asterisk:", "✳" },
450  { ":el_salvador:", "🇸🇻" },
451  { ":electric_plug:", "🔌" },
452  { ":elephant:", "🐘" },
453  { ":email:", "✉" },
454  { ":end:", "🔚" },
455  { ":envelope:", "✉" },
456  { ":envelope_with_arrow:", "📩" },
457  { ":equatorial_guinea:", "🇬🇶" },
458  { ":eritrea:", "🇪🇷" },
459  { ":es:", "🇪🇸" },
460  { ":estonia:", "🇪🇪" },
461  { ":ethiopia:", "🇪🇹" },
462  { ":eu:", "🇪🇺" },
463  { ":euro:", "💶" },
464  { ":european_castle:", "🏰" },
465  { ":european_post_office:", "🏤" },
466  { ":european_union:", "🇪🇺" },
467  { ":evergreen_tree:", "🌲" },
468  { ":exclamation:", "❗" },
469  { ":expressionless:", "😑" },
470  { ":eye:", "👁" },
471  { ":eye_speech_bubble:", "👁🗨" },
472  { ":eyeglasses:", "👓" },
473  { ":eyes:", "👀" },
474  { ":face_with_head_bandage:", "🤕" },
475  { ":face_with_thermometer:", "🤒" },
476  { ":facepunch:", "👊" },
477  { ":factory:", "🏭" },
478  { ":falkland_islands:", "🇫🇰" },
479  { ":fallen_leaf:", "🍂" },
480  { ":family:", "👪" },
481  { ":family_man_boy:", "👨👦" },
482  { ":family_man_boy_boy:", "👨👦👦" },
483  { ":family_man_girl:", "👨👧" },
484  { ":family_man_girl_boy:", "👨👧👦" },
485  { ":family_man_girl_girl:", "👨👧👧" },
486  { ":family_man_man_boy:", "👨👨👦" },
487  { ":family_man_man_boy_boy:", "👨👨👦👦" },
488  { ":family_man_man_girl:", "👨👨👧" },
489  { ":family_man_man_girl_boy:", "👨👨👧👦" },
490  { ":family_man_man_girl_girl:", "👨👨👧👧" },
491  { ":family_man_woman_boy:", "👪" },
492  { ":family_man_woman_boy_boy:", "👨👩👦👦" },
493  { ":family_man_woman_girl:", "👨👩👧" },
494  { ":family_man_woman_girl_boy:", "👨👩👧👦" },
495  { ":family_man_woman_girl_girl:", "👨👩👧👧" },
496  { ":family_woman_boy:", "👩👦" },
497  { ":family_woman_boy_boy:", "👩👦👦" },
498  { ":family_woman_girl:", "👩👧" },
499  { ":family_woman_girl_boy:", "👩👧👦" },
500  { ":family_woman_girl_girl:", "👩👧👧" },
501  { ":family_woman_woman_boy:", "👩👩👦" },
502  { ":family_woman_woman_boy_boy:", "👩👩👦👦" },
503  { ":family_woman_woman_girl:", "👩👩👧" },
504  { ":family_woman_woman_girl_boy:", "👩👩👧👦" },
505  { ":family_woman_woman_girl_girl:", "👩👩👧👧" },
506  { ":faroe_islands:", "🇫🇴" },
507  { ":fast_forward:", "⏩" },
508  { ":fax:", "📠" },
509  { ":fearful:", "😨" },
510  { ":feet:", "🐾" },
511  { ":female_detective:", "🕵♀" },
512  { ":ferris_wheel:", "🎡" },
513  { ":ferry:", "⛴" },
514  { ":field_hockey:", "🏑" },
515  { ":fiji:", "🇫🇯" },
516  { ":file_cabinet:", "🗄" },
517  { ":file_folder:", "📁" },
518  { ":film_projector:", "📽" },
519  { ":film_strip:", "🎞" },
520  { ":finland:", "🇫🇮" },
521  { ":fire:", "🔥" },
522  { ":fire_engine:", "🚒" },
523  { ":fireworks:", "🎆" },
524  { ":first_quarter_moon:", "🌓" },
525  { ":first_quarter_moon_with_face:", "🌛" },
526  { ":fish:", "🐟" },
527  { ":fish_cake:", "🍥" },
528  { ":fishing_pole_and_fish:", "🎣" },
529  { ":fist:", "✊" },
530  { ":fist_left:", "🤛" },
531  { ":fist_oncoming:", "👊" },
532  { ":fist_raised:", "✊" },
533  { ":fist_right:", "🤜" },
534  { ":five:", "5⃣" },
535  { ":flags:", "🎏" },
536  { ":flashlight:", "🔦" },
537  { ":fleur_de_lis:", "⚜" },
538  { ":flight_arrival:", "🛬" },
539  { ":flight_departure:", "🛫" },
540  { ":flipper:", "🐬" },
541  { ":floppy_disk:", "💾" },
542  { ":flower_playing_cards:", "🎴" },
543  { ":flushed:", "😳" },
544  { ":fog:", "🌫" },
545  { ":foggy:", "🌁" },
546  { ":football:", "🏈" },
547  { ":footprints:", "👣" },
548  { ":fork_and_knife:", "🍴" },
549  { ":fountain:", "⛲" },
550  { ":fountain_pen:", "🖋" },
551  { ":four:", "4⃣" },
552  { ":four_leaf_clover:", "🍀" },
553  { ":fox_face:", "🦊" },
554  { ":fr:", "🇫🇷" },
555  { ":framed_picture:", "🖼" },
556  { ":free:", "🆓" },
557  { ":french_guiana:", "🇬🇫" },
558  { ":french_polynesia:", "🇵🇫" },
559  { ":french_southern_territories:", "🇹🇫" },
560  { ":fried_egg:", "🍳" },
561  { ":fried_shrimp:", "🍤" },
562  { ":fries:", "🍟" },
563  { ":frog:", "🐸" },
564  { ":frowning:", "😦" },
565  { ":frowning_face:", "☹" },
566  { ":frowning_man:", "🙍♂" },
567  { ":frowning_woman:", "🙍" },
568  { ":fu:", "🖕" },
569  { ":fuelpump:", "⛽" },
570  { ":full_moon:", "🌕" },
571  { ":full_moon_with_face:", "🌝" },
572  { ":funeral_urn:", "⚱" },
573  { ":gabon:", "🇬🇦" },
574  { ":gambia:", "🇬🇲" },
575  { ":game_die:", "🎲" },
576  { ":gb:", "🇬🇧" },
577  { ":gear:", "⚙" },
578  { ":gem:", "💎" },
579  { ":gemini:", "♊" },
580  { ":georgia:", "🇬🇪" },
581  { ":ghana:", "🇬🇭" },
582  { ":ghost:", "👻" },
583  { ":gibraltar:", "🇬🇮" },
584  { ":gift:", "🎁" },
585  { ":gift_heart:", "💝" },
586  { ":girl:", "👧" },
587  { ":globe_with_meridians:", "🌐" },
588  { ":goal_net:", "🥅" },
589  { ":goat:", "🐐" },
590  { ":golf:", "⛳" },
591  { ":golfing_man:", "🏌" },
592  { ":golfing_woman:", "🏌♀" },
593  { ":gorilla:", "🦍" },
594  { ":grapes:", "🍇" },
595  { ":greece:", "🇬🇷" },
596  { ":green_apple:", "🍏" },
597  { ":green_book:", "📗" },
598  { ":green_heart:", "💚" },
599  { ":green_salad:", "🥗" },
600  { ":greenland:", "🇬🇱" },
601  { ":grenada:", "🇬🇩" },
602  { ":grey_exclamation:", "❕" },
603  { ":grey_question:", "❔" },
604  { ":grimacing:", "😬" },
605  { ":grin:", "😁" },
606  { ":grinning:", "😀" },
607  { ":guadeloupe:", "🇬🇵" },
608  { ":guam:", "🇬🇺" },
609  { ":guardsman:", "💂" },
610  { ":guardswoman:", "💂♀" },
611  { ":guatemala:", "🇬🇹" },
612  { ":guernsey:", "🇬🇬" },
613  { ":guinea:", "🇬🇳" },
614  { ":guinea_bissau:", "🇬🇼" },
615  { ":guitar:", "🎸" },
616  { ":gun:", "🔫" },
617  { ":guyana:", "🇬🇾" },
618  { ":haircut:", "💇" },
619  { ":haircut_man:", "💇♂" },
620  { ":haircut_woman:", "💇" },
621  { ":haiti:", "🇭🇹" },
622  { ":hamburger:", "🍔" },
623  { ":hammer:", "🔨" },
624  { ":hammer_and_pick:", "⚒" },
625  { ":hammer_and_wrench:", "🛠" },
626  { ":hamster:", "🐹" },
627  { ":hand:", "✋" },
628  { ":handbag:", "👜" },
629  { ":handshake:", "🤝" },
630  { ":hankey:", "💩" },
631  { ":hash:", "#⃣" },
632  { ":hatched_chick:", "🐥" },
633  { ":hatching_chick:", "🐣" },
634  { ":headphones:", "🎧" },
635  { ":hear_no_evil:", "🙉" },
636  { ":heart:", "❤" },
637  { ":heart_decoration:", "💟" },
638  { ":heart_eyes:", "😍" },
639  { ":heart_eyes_cat:", "😻" },
640  { ":heartbeat:", "💓" },
641  { ":heartpulse:", "💗" },
642  { ":hearts:", "♥" },
643  { ":heavy_check_mark:", "✔" },
644  { ":heavy_division_sign:", "➗" },
645  { ":heavy_dollar_sign:", "💲" },
646  { ":heavy_exclamation_mark:", "❗" },
647  { ":heavy_heart_exclamation:", "❣" },
648  { ":heavy_minus_sign:", "➖" },
649  { ":heavy_multiplication_x:", "✖" },
650  { ":heavy_plus_sign:", "➕" },
651  { ":helicopter:", "🚁" },
652  { ":herb:", "🌿" },
653  { ":hibiscus:", "🌺" },
654  { ":high_brightness:", "🔆" },
655  { ":high_heel:", "👠" },
656  { ":hocho:", "🔪" },
657  { ":hole:", "🕳" },
658  { ":honduras:", "🇭🇳" },
659  { ":honey_pot:", "🍯" },
660  { ":honeybee:", "🐝" },
661  { ":hong_kong:", "🇭🇰" },
662  { ":horse:", "🐴" },
663  { ":horse_racing:", "🏇" },
664  { ":hospital:", "🏥" },
665  { ":hot_pepper:", "🌶" },
666  { ":hotdog:", "🌭" },
667  { ":hotel:", "🏨" },
668  { ":hotsprings:", "♨" },
669  { ":hourglass:", "⌛" },
670  { ":hourglass_flowing_sand:", "⏳" },
671  { ":house:", "🏠" },
672  { ":house_with_garden:", "🏡" },
673  { ":houses:", "🏘" },
674  { ":hugs:", "🤗" },
675  { ":hungary:", "🇭🇺" },
676  { ":hushed:", "😯" },
677  { ":ice_cream:", "🍨" },
678  { ":ice_hockey:", "🏒" },
679  { ":ice_skate:", "⛸" },
680  { ":icecream:", "🍦" },
681  { ":iceland:", "🇮🇸" },
682  { ":id:", "🆔" },
683  { ":ideograph_advantage:", "🉐" },
684  { ":imp:", "👿" },
685  { ":inbox_tray:", "📥" },
686  { ":incoming_envelope:", "📨" },
687  { ":india:", "🇮🇳" },
688  { ":indonesia:", "🇮🇩" },
689  { ":information_desk_person:", "💁" },
690  { ":information_source:", "ℹ" },
691  { ":innocent:", "😇" },
692  { ":interrobang:", "⁉" },
693  { ":iphone:", "📱" },
694  { ":iran:", "🇮🇷" },
695  { ":iraq:", "🇮🇶" },
696  { ":ireland:", "🇮🇪" },
697  { ":isle_of_man:", "🇮🇲" },
698  { ":israel:", "🇮🇱" },
699  { ":it:", "🇮🇹" },
700  { ":izakaya_lantern:", "🏮" },
701  { ":jack_o_lantern:", "🎃" },
702  { ":jamaica:", "🇯🇲" },
703  { ":japan:", "🗾" },
704  { ":japanese_castle:", "🏯" },
705  { ":japanese_goblin:", "👺" },
706  { ":japanese_ogre:", "👹" },
707  { ":jeans:", "👖" },
708  { ":jersey:", "🇯🇪" },
709  { ":jordan:", "🇯🇴" },
710  { ":joy:", "😂" },
711  { ":joy_cat:", "😹" },
712  { ":joystick:", "🕹" },
713  { ":jp:", "🇯🇵" },
714  { ":kaaba:", "🕋" },
715  { ":kazakhstan:", "🇰🇿" },
716  { ":kenya:", "🇰🇪" },
717  { ":key:", "🔑" },
718  { ":keyboard:", "⌨" },
719  { ":keycap_ten:", "🔟" },
720  { ":kick_scooter:", "🛴" },
721  { ":kimono:", "👘" },
722  { ":kiribati:", "🇰🇮" },
723  { ":kiss:", "💋" },
724  { ":kissing:", "😗" },
725  { ":kissing_cat:", "😽" },
726  { ":kissing_closed_eyes:", "😚" },
727  { ":kissing_heart:", "😘" },
728  { ":kissing_smiling_eyes:", "😙" },
729  { ":kiwi_fruit:", "🥝" },
730  { ":knife:", "🔪" },
731  { ":koala:", "🐨" },
732  { ":koko:", "🈁" },
733  { ":kosovo:", "🇽🇰" },
734  { ":kr:", "🇰🇷" },
735  { ":kuwait:", "🇰🇼" },
736  { ":kyrgyzstan:", "🇰🇬" },
737  { ":label:", "🏷" },
738  { ":lantern:", "🏮" },
739  { ":laos:", "🇱🇦" },
740  { ":large_blue_circle:", "🔵" },
741  { ":large_blue_diamond:", "🔷" },
742  { ":large_orange_diamond:", "🔶" },
743  { ":last_quarter_moon:", "🌗" },
744  { ":last_quarter_moon_with_face:", "🌜" },
745  { ":latin_cross:", "✝" },
746  { ":latvia:", "🇱🇻" },
747  { ":laughing:", "😆" },
748  { ":leaves:", "🍃" },
749  { ":lebanon:", "🇱🇧" },
750  { ":ledger:", "📒" },
751  { ":left_luggage:", "🛅" },
752  { ":left_right_arrow:", "↔" },
753  { ":leftwards_arrow_with_hook:", "↩" },
754  { ":lemon:", "🍋" },
755  { ":leo:", "♌" },
756  { ":leopard:", "🐆" },
757  { ":lesotho:", "🇱🇸" },
758  { ":level_slider:", "🎚" },
759  { ":liberia:", "🇱🇷" },
760  { ":libra:", "♎" },
761  { ":libya:", "🇱🇾" },
762  { ":liechtenstein:", "🇱🇮" },
763  { ":light_rail:", "🚈" },
764  { ":link:", "🔗" },
765  { ":lion:", "🦁" },
766  { ":lips:", "👄" },
767  { ":lipstick:", "💄" },
768  { ":lithuania:", "🇱🇹" },
769  { ":lizard:", "🦎" },
770  { ":lock:", "🔒" },
771  { ":lock_with_ink_pen:", "🔏" },
772  { ":lollipop:", "🍭" },
773  { ":loop:", "➿" },
774  { ":loud_sound:", "🔊" },
775  { ":loudspeaker:", "📢" },
776  { ":love_hotel:", "🏩" },
777  { ":love_letter:", "💌" },
778  { ":low_brightness:", "🔅" },
779  { ":luxembourg:", "🇱🇺" },
780  { ":lying_face:", "🤥" },
781  { ":m:", "Ⓜ" },
782  { ":macau:", "🇲🇴" },
783  { ":macedonia:", "🇲🇰" },
784  { ":madagascar:", "🇲🇬" },
785  { ":mag:", "🔍" },
786  { ":mag_right:", "🔎" },
787  { ":mahjong:", "🀄" },
788  { ":mailbox:", "📫" },
789  { ":mailbox_closed:", "📪" },
790  { ":mailbox_with_mail:", "📬" },
791  { ":mailbox_with_no_mail:", "📭" },
792  { ":malawi:", "🇲🇼" },
793  { ":malaysia:", "🇲🇾" },
794  { ":maldives:", "🇲🇻" },
795  { ":male_detective:", "🕵" },
796  { ":mali:", "🇲🇱" },
797  { ":malta:", "🇲🇹" },
798  { ":man:", "👨" },
799  { ":man_artist:", "👨🎨" },
800  { ":man_astronaut:", "👨🚀" },
801  { ":man_cartwheeling:", "🤸♂" },
802  { ":man_cook:", "👨🍳" },
803  { ":man_dancing:", "🕺" },
804  { ":man_facepalming:", "🤦♂" },
805  { ":man_factory_worker:", "👨🏭" },
806  { ":man_farmer:", "👨🌾" },
807  { ":man_firefighter:", "👨🚒" },
808  { ":man_health_worker:", "👨⚕" },
809  { ":man_in_tuxedo:", "🤵" },
810  { ":man_judge:", "👨⚖" },
811  { ":man_juggling:", "🤹♂" },
812  { ":man_mechanic:", "👨🔧" },
813  { ":man_office_worker:", "👨💼" },
814  { ":man_pilot:", "👨✈" },
815  { ":man_playing_handball:", "🤾♂" },
816  { ":man_playing_water_polo:", "🤽♂" },
817  { ":man_scientist:", "👨🔬" },
818  { ":man_shrugging:", "🤷♂" },
819  { ":man_singer:", "👨🎤" },
820  { ":man_student:", "👨🎓" },
821  { ":man_teacher:", "👨🏫" },
822  { ":man_technologist:", "👨💻" },
823  { ":man_with_gua_pi_mao:", "👲" },
824  { ":man_with_turban:", "👳" },
825  { ":mandarin:", "🍊" },
826  { ":mans_shoe:", "👞" },
827  { ":mantelpiece_clock:", "🕰" },
828  { ":maple_leaf:", "🍁" },
829  { ":marshall_islands:", "🇲🇭" },
830  { ":martial_arts_uniform:", "🥋" },
831  { ":martinique:", "🇲🇶" },
832  { ":mask:", "😷" },
833  { ":massage:", "💆" },
834  { ":massage_man:", "💆♂" },
835  { ":massage_woman:", "💆" },
836  { ":mauritania:", "🇲🇷" },
837  { ":mauritius:", "🇲🇺" },
838  { ":mayotte:", "🇾🇹" },
839  { ":meat_on_bone:", "🍖" },
840  { ":medal_military:", "🎖" },
841  { ":medal_sports:", "🏅" },
842  { ":mega:", "📣" },
843  { ":melon:", "🍈" },
844  { ":memo:", "📝" },
845  { ":men_wrestling:", "🤼♂" },
846  { ":menorah:", "🕎" },
847  { ":mens:", "🚹" },
848  { ":metal:", "🤘" },
849  { ":metro:", "🚇" },
850  { ":mexico:", "🇲🇽" },
851  { ":micronesia:", "🇫🇲" },
852  { ":microphone:", "🎤" },
853  { ":microscope:", "🔬" },
854  { ":middle_finger:", "🖕" },
855  { ":milk_glass:", "🥛" },
856  { ":milky_way:", "🌌" },
857  { ":minibus:", "🚐" },
858  { ":minidisc:", "💽" },
859  { ":mobile_phone_off:", "📴" },
860  { ":moldova:", "🇲🇩" },
861  { ":monaco:", "🇲🇨" },
862  { ":money_mouth_face:", "🤑" },
863  { ":money_with_wings:", "💸" },
864  { ":moneybag:", "💰" },
865  { ":mongolia:", "🇲🇳" },
866  { ":monkey:", "🐒" },
867  { ":monkey_face:", "🐵" },
868  { ":monorail:", "🚝" },
869  { ":montenegro:", "🇲🇪" },
870  { ":montserrat:", "🇲🇸" },
871  { ":moon:", "🌔" },
872  { ":morocco:", "🇲🇦" },
873  { ":mortar_board:", "🎓" },
874  { ":mosque:", "🕌" },
875  { ":motor_boat:", "🛥" },
876  { ":motor_scooter:", "🛵" },
877  { ":motorcycle:", "🏍" },
878  { ":motorway:", "🛣" },
879  { ":mount_fuji:", "🗻" },
880  { ":mountain:", "⛰" },
881  { ":mountain_bicyclist:", "🚵" },
882  { ":mountain_biking_man:", "🚵" },
883  { ":mountain_biking_woman:", "🚵♀" },
884  { ":mountain_cableway:", "🚠" },
885  { ":mountain_railway:", "🚞" },
886  { ":mountain_snow:", "🏔" },
887  { ":mouse:", "🐭" },
888  { ":mouse2:", "🐁" },
889  { ":movie_camera:", "🎥" },
890  { ":moyai:", "🗿" },
891  { ":mozambique:", "🇲🇿" },
892  { ":mrs_claus:", "🤶" },
893  { ":muscle:", "💪" },
894  { ":mushroom:", "🍄" },
895  { ":musical_keyboard:", "🎹" },
896  { ":musical_note:", "🎵" },
897  { ":musical_score:", "🎼" },
898  { ":mute:", "🔇" },
899  { ":myanmar:", "🇲🇲" },
900  { ":nail_care:", "💅" },
901  { ":name_badge:", "📛" },
902  { ":namibia:", "🇳🇦" },
903  { ":national_park:", "🏞" },
904  { ":nauru:", "🇳🇷" },
905  { ":nauseated_face:", "🤢" },
906  { ":necktie:", "👔" },
907  { ":negative_squared_cross_mark:", "❎" },
908  { ":nepal:", "🇳🇵" },
909  { ":nerd_face:", "🤓" },
910  { ":netherlands:", "🇳🇱" },
911  { ":neutral_face:", "😐" },
912  { ":new:", "🆕" },
913  { ":new_caledonia:", "🇳🇨" },
914  { ":new_moon:", "🌑" },
915  { ":new_moon_with_face:", "🌚" },
916  { ":new_zealand:", "🇳🇿" },
917  { ":newspaper:", "📰" },
918  { ":newspaper_roll:", "🗞" },
919  { ":next_track_button:", "⏭" },
920  { ":ng:", "🆖" },
921  { ":ng_man:", "🙅♂" },
922  { ":ng_woman:", "🙅" },
923  { ":nicaragua:", "🇳🇮" },
924  { ":niger:", "🇳🇪" },
925  { ":nigeria:", "🇳🇬" },
926  { ":night_with_stars:", "🌃" },
927  { ":nine:", "9⃣" },
928  { ":niue:", "🇳🇺" },
929  { ":no_bell:", "🔕" },
930  { ":no_bicycles:", "🚳" },
931  { ":no_entry:", "⛔" },
932  { ":no_entry_sign:", "🚫" },
933  { ":no_good:", "🙅" },
934  { ":no_good_man:", "🙅♂" },
935  { ":no_good_woman:", "🙅" },
936  { ":no_mobile_phones:", "📵" },
937  { ":no_mouth:", "😶" },
938  { ":no_pedestrians:", "🚷" },
939  { ":no_smoking:", "🚭" },
940  { ":non-potable_water:", "🚱" },
941  { ":norfolk_island:", "🇳🇫" },
942  { ":north_korea:", "🇰🇵" },
943  { ":northern_mariana_islands:", "🇲🇵" },
944  { ":norway:", "🇳🇴" },
945  { ":nose:", "👃" },
946  { ":notebook:", "📓" },
947  { ":notebook_with_decorative_cover:", "📔" },
948  { ":notes:", "🎶" },
949  { ":nut_and_bolt:", "🔩" },
950  { ":o:", "⭕" },
951  { ":o2:", "🅾" },
952  { ":ocean:", "🌊" },
953  { ":octopus:", "🐙" },
954  { ":oden:", "🍢" },
955  { ":office:", "🏢" },
956  { ":oil_drum:", "🛢" },
957  { ":ok:", "🆗" },
958  { ":ok_hand:", "👌" },
959  { ":ok_man:", "🙆♂" },
960  { ":ok_woman:", "🙆" },
961  { ":old_key:", "🗝" },
962  { ":older_man:", "👴" },
963  { ":older_woman:", "👵" },
964  { ":om:", "🕉" },
965  { ":oman:", "🇴🇲" },
966  { ":on:", "🔛" },
967  { ":oncoming_automobile:", "🚘" },
968  { ":oncoming_bus:", "🚍" },
969  { ":oncoming_police_car:", "🚔" },
970  { ":oncoming_taxi:", "🚖" },
971  { ":one:", "1⃣" },
972  { ":open_book:", "📖" },
973  { ":open_file_folder:", "📂" },
974  { ":open_hands:", "👐" },
975  { ":open_mouth:", "😮" },
976  { ":open_umbrella:", "☂" },
977  { ":ophiuchus:", "⛎" },
978  { ":orange:", "🍊" },
979  { ":orange_book:", "📙" },
980  { ":orthodox_cross:", "☦" },
981  { ":outbox_tray:", "📤" },
982  { ":owl:", "🦉" },
983  { ":ox:", "🐂" },
984  { ":package:", "📦" },
985  { ":page_facing_up:", "📄" },
986  { ":page_with_curl:", "📃" },
987  { ":pager:", "📟" },
988  { ":paintbrush:", "🖌" },
989  { ":pakistan:", "🇵🇰" },
990  { ":palau:", "🇵🇼" },
991  { ":palestinian_territories:", "🇵🇸" },
992  { ":palm_tree:", "🌴" },
993  { ":panama:", "🇵🇦" },
994  { ":pancakes:", "🥞" },
995  { ":panda_face:", "🐼" },
996  { ":paperclip:", "📎" },
997  { ":paperclips:", "🖇" },
998  { ":papua_new_guinea:", "🇵🇬" },
999  { ":paraguay:", "🇵🇾" },
1000  { ":parasol_on_ground:", "⛱" },
1001  { ":parking:", "🅿" },
1002  { ":part_alternation_mark:", "〽" },
1003  { ":partly_sunny:", "⛅" },
1004  { ":passenger_ship:", "🛳" },
1005  { ":passport_control:", "🛂" },
1006  { ":pause_button:", "⏸" },
1007  { ":paw_prints:", "🐾" },
1008  { ":peace_symbol:", "☮" },
1009  { ":peach:", "🍑" },
1010  { ":peanuts:", "🥜" },
1011  { ":pear:", "🍐" },
1012  { ":pen:", "🖊" },
1013  { ":pencil:", "📝" },
1014  { ":pencil2:", "✏" },
1015  { ":penguin:", "🐧" },
1016  { ":pensive:", "😔" },
1017  { ":performing_arts:", "🎭" },
1018  { ":persevere:", "😣" },
1019  { ":person_fencing:", "🤺" },
1020  { ":person_frowning:", "🙍" },
1021  { ":person_with_blond_hair:", "👱" },
1022  { ":person_with_pouting_face:", "🙎" },
1023  { ":peru:", "🇵🇪" },
1024  { ":philippines:", "🇵🇭" },
1025  { ":phone:", "☎" },
1026  { ":pick:", "⛏" },
1027  { ":pig:", "🐷" },
1028  { ":pig2:", "🐖" },
1029  { ":pig_nose:", "🐽" },
1030  { ":pill:", "💊" },
1031  { ":pineapple:", "🍍" },
1032  { ":ping_pong:", "🏓" },
1033  { ":pisces:", "♓" },
1034  { ":pitcairn_islands:", "🇵🇳" },
1035  { ":pizza:", "🍕" },
1036  { ":place_of_worship:", "🛐" },
1037  { ":plate_with_cutlery:", "🍽" },
1038  { ":play_or_pause_button:", "⏯" },
1039  { ":point_down:", "👇" },
1040  { ":point_left:", "👈" },
1041  { ":point_right:", "👉" },
1042  { ":point_up:", "☝" },
1043  { ":point_up_2:", "👆" },
1044  { ":poland:", "🇵🇱" },
1045  { ":police_car:", "🚓" },
1046  { ":policeman:", "👮" },
1047  { ":policewoman:", "👮♀" },
1048  { ":poodle:", "🐩" },
1049  { ":poop:", "💩" },
1050  { ":popcorn:", "🍿" },
1051  { ":portugal:", "🇵🇹" },
1052  { ":post_office:", "🏣" },
1053  { ":postal_horn:", "📯" },
1054  { ":postbox:", "📮" },
1055  { ":potable_water:", "🚰" },
1056  { ":potato:", "🥔" },
1057  { ":pouch:", "👝" },
1058  { ":poultry_leg:", "🍗" },
1059  { ":pound:", "💷" },
1060  { ":pout:", "😡" },
1061  { ":pouting_cat:", "😾" },
1062  { ":pouting_man:", "🙎♂" },
1063  { ":pouting_woman:", "🙎" },
1064  { ":pray:", "🙏" },
1065  { ":prayer_beads:", "📿" },
1066  { ":pregnant_woman:", "🤰" },
1067  { ":previous_track_button:", "⏮" },
1068  { ":prince:", "🤴" },
1069  { ":princess:", "👸" },
1070  { ":printer:", "🖨" },
1071  { ":puerto_rico:", "🇵🇷" },
1072  { ":punch:", "👊" },
1073  { ":purple_heart:", "💜" },
1074  { ":purse:", "👛" },
1075  { ":pushpin:", "📌" },
1076  { ":put_litter_in_its_place:", "🚮" },
1077  { ":qatar:", "🇶🇦" },
1078  { ":question:", "❓" },
1079  { ":rabbit:", "🐰" },
1080  { ":rabbit2:", "🐇" },
1081  { ":racehorse:", "🐎" },
1082  { ":racing_car:", "🏎" },
1083  { ":radio:", "📻" },
1084  { ":radio_button:", "🔘" },
1085  { ":radioactive:", "☢" },
1086  { ":rage:", "😡" },
1087  { ":railway_car:", "🚃" },
1088  { ":railway_track:", "🛤" },
1089  { ":rainbow:", "🌈" },
1090  { ":rainbow_flag:", "🏳🌈" },
1091  { ":raised_back_of_hand:", "🤚" },
1092  { ":raised_hand:", "✋" },
1093  { ":raised_hand_with_fingers_splayed:", "🖐" },
1094  { ":raised_hands:", "🙌" },
1095  { ":raising_hand:", "🙋" },
1096  { ":raising_hand_man:", "🙋♂" },
1097  { ":raising_hand_woman:", "🙋" },
1098  { ":ram:", "🐏" },
1099  { ":ramen:", "🍜" },
1100  { ":rat:", "🐀" },
1101  { ":record_button:", "⏺" },
1102  { ":recycle:", "♻" },
1103  { ":red_car:", "🚗" },
1104  { ":red_circle:", "🔴" },
1105  { ":registered:", "®" },
1106  { ":relaxed:", "☺" },
1107  { ":relieved:", "😌" },
1108  { ":reminder_ribbon:", "🎗" },
1109  { ":repeat:", "🔁" },
1110  { ":repeat_one:", "🔂" },
1111  { ":rescue_worker_helmet:", "⛑" },
1112  { ":restroom:", "🚻" },
1113  { ":reunion:", "🇷🇪" },
1114  { ":revolving_hearts:", "💞" },
1115  { ":rewind:", "⏪" },
1116  { ":rhinoceros:", "🦏" },
1117  { ":ribbon:", "🎀" },
1118  { ":rice:", "🍚" },
1119  { ":rice_ball:", "🍙" },
1120  { ":rice_cracker:", "🍘" },
1121  { ":rice_scene:", "🎑" },
1122  { ":right_anger_bubble:", "🗯" },
1123  { ":ring:", "💍" },
1124  { ":robot:", "🤖" },
1125  { ":rocket:", "🚀" },
1126  { ":rofl:", "🤣" },
1127  { ":roll_eyes:", "🙄" },
1128  { ":roller_coaster:", "🎢" },
1129  { ":romania:", "🇷🇴" },
1130  { ":rooster:", "🐓" },
1131  { ":rose:", "🌹" },
1132  { ":rosette:", "🏵" },
1133  { ":rotating_light:", "🚨" },
1134  { ":round_pushpin:", "📍" },
1135  { ":rowboat:", "🚣" },
1136  { ":rowing_man:", "🚣" },
1137  { ":rowing_woman:", "🚣♀" },
1138  { ":ru:", "🇷🇺" },
1139  { ":rugby_football:", "🏉" },
1140  { ":runner:", "🏃" },
1141  { ":running:", "🏃" },
1142  { ":running_man:", "🏃" },
1143  { ":running_shirt_with_sash:", "🎽" },
1144  { ":running_woman:", "🏃♀" },
1145  { ":rwanda:", "🇷🇼" },
1146  { ":sa:", "🈂" },
1147  { ":sagittarius:", "♐" },
1148  { ":sailboat:", "⛵" },
1149  { ":sake:", "🍶" },
1150  { ":samoa:", "🇼🇸" },
1151  { ":san_marino:", "🇸🇲" },
1152  { ":sandal:", "👡" },
1153  { ":santa:", "🎅" },
1154  { ":sao_tome_principe:", "🇸🇹" },
1155  { ":satellite:", "📡" },
1156  { ":satisfied:", "😆" },
1157  { ":saudi_arabia:", "🇸🇦" },
1158  { ":saxophone:", "🎷" },
1159  { ":school:", "🏫" },
1160  { ":school_satchel:", "🎒" },
1161  { ":scissors:", "✂" },
1162  { ":scorpion:", "🦂" },
1163  { ":scorpius:", "♏" },
1164  { ":scream:", "😱" },
1165  { ":scream_cat:", "🙀" },
1166  { ":scroll:", "📜" },
1167  { ":seat:", "💺" },
1168  { ":secret:", "㊙" },
1169  { ":see_no_evil:", "🙈" },
1170  { ":seedling:", "🌱" },
1171  { ":selfie:", "🤳" },
1172  { ":senegal:", "🇸🇳" },
1173  { ":serbia:", "🇷🇸" },
1174  { ":seven:", "7⃣" },
1175  { ":seychelles:", "🇸🇨" },
1176  { ":shallow_pan_of_food:", "🥘" },
1177  { ":shamrock:", "☘" },
1178  { ":shark:", "🦈" },
1179  { ":shaved_ice:", "🍧" },
1180  { ":sheep:", "🐑" },
1181  { ":shell:", "🐚" },
1182  { ":shield:", "🛡" },
1183  { ":shinto_shrine:", "⛩" },
1184  { ":ship:", "🚢" },
1185  { ":shirt:", "👕" },
1186  { ":shit:", "💩" },
1187  { ":shoe:", "👞" },
1188  { ":shopping:", "🛍" },
1189  { ":shopping_cart:", "🛒" },
1190  { ":shower:", "🚿" },
1191  { ":shrimp:", "🦐" },
1192  { ":sierra_leone:", "🇸🇱" },
1193  { ":signal_strength:", "📶" },
1194  { ":singapore:", "🇸🇬" },
1195  { ":sint_maarten:", "🇸🇽" },
1196  { ":six:", "6⃣" },
1197  { ":six_pointed_star:", "🔯" },
1198  { ":ski:", "🎿" },
1199  { ":skier:", "⛷" },
1200  { ":skull:", "💀" },
1201  { ":skull_and_crossbones:", "☠" },
1202  { ":sleeping:", "😴" },
1203  { ":sleeping_bed:", "🛌" },
1204  { ":sleepy:", "😪" },
1205  { ":slightly_frowning_face:", "🙁" },
1206  { ":slightly_smiling_face:", "🙂" },
1207  { ":slot_machine:", "🎰" },
1208  { ":slovakia:", "🇸🇰" },
1209  { ":slovenia:", "🇸🇮" },
1210  { ":small_airplane:", "🛩" },
1211  { ":small_blue_diamond:", "🔹" },
1212  { ":small_orange_diamond:", "🔸" },
1213  { ":small_red_triangle:", "🔺" },
1214  { ":small_red_triangle_down:", "🔻" },
1215  { ":smile:", "😄" },
1216  { ":smile_cat:", "😸" },
1217  { ":smiley:", "😃" },
1218  { ":smiley_cat:", "😺" },
1219  { ":smiling_imp:", "😈" },
1220  { ":smirk:", "😏" },
1221  { ":smirk_cat:", "😼" },
1222  { ":smoking:", "🚬" },
1223  { ":snail:", "🐌" },
1224  { ":snake:", "🐍" },
1225  { ":sneezing_face:", "🤧" },
1226  { ":snowboarder:", "🏂" },
1227  { ":snowflake:", "❄" },
1228  { ":snowman:", "⛄" },
1229  { ":snowman_with_snow:", "☃" },
1230  { ":sob:", "😭" },
1231  { ":soccer:", "⚽" },
1232  { ":solomon_islands:", "🇸🇧" },
1233  { ":somalia:", "🇸🇴" },
1234  { ":soon:", "🔜" },
1235  { ":sos:", "🆘" },
1236  { ":sound:", "🔉" },
1237  { ":south_africa:", "🇿🇦" },
1238  { ":south_georgia_south_sandwich_islands:", "🇬🇸" },
1239  { ":south_sudan:", "🇸🇸" },
1240  { ":space_invader:", "👾" },
1241  { ":spades:", "♠" },
1242  { ":spaghetti:", "🍝" },
1243  { ":sparkle:", "❇" },
1244  { ":sparkler:", "🎇" },
1245  { ":sparkles:", "✨" },
1246  { ":sparkling_heart:", "💖" },
1247  { ":speak_no_evil:", "🙊" },
1248  { ":speaker:", "🔈" },
1249  { ":speaking_head:", "🗣" },
1250  { ":speech_balloon:", "💬" },
1251  { ":speedboat:", "🚤" },
1252  { ":spider:", "🕷" },
1253  { ":spider_web:", "🕸" },
1254  { ":spiral_calendar:", "🗓" },
1255  { ":spiral_notepad:", "🗒" },
1256  { ":spoon:", "🥄" },
1257  { ":squid:", "🦑" },
1258  { ":sri_lanka:", "🇱🇰" },
1259  { ":st_barthelemy:", "🇧🇱" },
1260  { ":st_helena:", "🇸🇭" },
1261  { ":st_kitts_nevis:", "🇰🇳" },
1262  { ":st_lucia:", "🇱🇨" },
1263  { ":st_pierre_miquelon:", "🇵🇲" },
1264  { ":st_vincent_grenadines:", "🇻🇨" },
1265  { ":stadium:", "🏟" },
1266  { ":star:", "⭐" },
1267  { ":star2:", "🌟" },
1268  { ":star_and_crescent:", "☪" },
1269  { ":star_of_david:", "✡" },
1270  { ":stars:", "🌠" },
1271  { ":station:", "🚉" },
1272  { ":statue_of_liberty:", "🗽" },
1273  { ":steam_locomotive:", "🚂" },
1274  { ":stew:", "🍲" },
1275  { ":stop_button:", "⏹" },
1276  { ":stop_sign:", "🛑" },
1277  { ":stopwatch:", "⏱" },
1278  { ":straight_ruler:", "📏" },
1279  { ":strawberry:", "🍓" },
1280  { ":stuck_out_tongue:", "😛" },
1281  { ":stuck_out_tongue_closed_eyes:", "😝" },
1282  { ":stuck_out_tongue_winking_eye:", "😜" },
1283  { ":studio_microphone:", "🎙" },
1284  { ":stuffed_flatbread:", "🥙" },
1285  { ":sudan:", "🇸🇩" },
1286  { ":sun_behind_large_cloud:", "🌥" },
1287  { ":sun_behind_rain_cloud:", "🌦" },
1288  { ":sun_behind_small_cloud:", "🌤" },
1289  { ":sun_with_face:", "🌞" },
1290  { ":sunflower:", "🌻" },
1291  { ":sunglasses:", "😎" },
1292  { ":sunny:", "☀" },
1293  { ":sunrise:", "🌅" },
1294  { ":sunrise_over_mountains:", "🌄" },
1295  { ":surfer:", "🏄" },
1296  { ":surfing_man:", "🏄" },
1297  { ":surfing_woman:", "🏄♀" },
1298  { ":suriname:", "🇸🇷" },
1299  { ":sushi:", "🍣" },
1300  { ":suspension_railway:", "🚟" },
1301  { ":swaziland:", "🇸🇿" },
1302  { ":sweat:", "😓" },
1303  { ":sweat_drops:", "💦" },
1304  { ":sweat_smile:", "😅" },
1305  { ":sweden:", "🇸🇪" },
1306  { ":sweet_potato:", "🍠" },
1307  { ":swimmer:", "🏊" },
1308  { ":swimming_man:", "🏊" },
1309  { ":swimming_woman:", "🏊♀" },
1310  { ":switzerland:", "🇨🇭" },
1311  { ":symbols:", "🔣" },
1312  { ":synagogue:", "🕍" },
1313  { ":syria:", "🇸🇾" },
1314  { ":syringe:", "💉" },
1315  { ":taco:", "🌮" },
1316  { ":tada:", "🎉" },
1317  { ":taiwan:", "🇹🇼" },
1318  { ":tajikistan:", "🇹🇯" },
1319  { ":tanabata_tree:", "🎋" },
1320  { ":tangerine:", "🍊" },
1321  { ":tanzania:", "🇹🇿" },
1322  { ":taurus:", "♉" },
1323  { ":taxi:", "🚕" },
1324  { ":tea:", "🍵" },
1325  { ":telephone:", "☎" },
1326  { ":telephone_receiver:", "📞" },
1327  { ":telescope:", "🔭" },
1328  { ":tennis:", "🎾" },
1329  { ":tent:", "⛺" },
1330  { ":thailand:", "🇹🇭" },
1331  { ":thermometer:", "🌡" },
1332  { ":thinking:", "🤔" },
1333  { ":thought_balloon:", "💭" },
1334  { ":three:", "3⃣" },
1335  { ":thumbsdown:", "👎" },
1336  { ":thumbsup:", "👍" },
1337  { ":ticket:", "🎫" },
1338  { ":tickets:", "🎟" },
1339  { ":tiger:", "🐯" },
1340  { ":tiger2:", "🐅" },
1341  { ":timer_clock:", "⏲" },
1342  { ":timor_leste:", "🇹🇱" },
1343  { ":tipping_hand_man:", "💁♂" },
1344  { ":tipping_hand_woman:", "💁" },
1345  { ":tired_face:", "😫" },
1346  { ":tm:", "™" },
1347  { ":togo:", "🇹🇬" },
1348  { ":toilet:", "🚽" },
1349  { ":tokelau:", "🇹🇰" },
1350  { ":tokyo_tower:", "🗼" },
1351  { ":tomato:", "🍅" },
1352  { ":tonga:", "🇹🇴" },
1353  { ":tongue:", "👅" },
1354  { ":top:", "🔝" },
1355  { ":tophat:", "🎩" },
1356  { ":tornado:", "🌪" },
1357  { ":tr:", "🇹🇷" },
1358  { ":trackball:", "🖲" },
1359  { ":tractor:", "🚜" },
1360  { ":traffic_light:", "🚥" },
1361  { ":train:", "🚋" },
1362  { ":train2:", "🚆" },
1363  { ":tram:", "🚊" },
1364  { ":triangular_flag_on_post:", "🚩" },
1365  { ":triangular_ruler:", "📐" },
1366  { ":trident:", "🔱" },
1367  { ":trinidad_tobago:", "🇹🇹" },
1368  { ":triumph:", "😤" },
1369  { ":trolleybus:", "🚎" },
1370  { ":trophy:", "🏆" },
1371  { ":tropical_drink:", "🍹" },
1372  { ":tropical_fish:", "🐠" },
1373  { ":truck:", "🚚" },
1374  { ":trumpet:", "🎺" },
1375  { ":tshirt:", "👕" },
1376  { ":tulip:", "🌷" },
1377  { ":tumbler_glass:", "🥃" },
1378  { ":tunisia:", "🇹🇳" },
1379  { ":turkey:", "🦃" },
1380  { ":turkmenistan:", "🇹🇲" },
1381  { ":turks_caicos_islands:", "🇹🇨" },
1382  { ":turtle:", "🐢" },
1383  { ":tuvalu:", "🇹🇻" },
1384  { ":tv:", "📺" },
1385  { ":twisted_rightwards_arrows:", "🔀" },
1386  { ":two:", "2⃣" },
1387  { ":two_hearts:", "💕" },
1388  { ":two_men_holding_hands:", "👬" },
1389  { ":two_women_holding_hands:", "👭" },
1390  { ":u5272:", "🈹" },
1391  { ":u5408:", "🈴" },
1392  { ":u55b6:", "🈺" },
1393  { ":u6307:", "🈯" },
1394  { ":u6708:", "🈷" },
1395  { ":u6709:", "🈶" },
1396  { ":u6e80:", "🈵" },
1397  { ":u7121:", "🈚" },
1398  { ":u7533:", "🈸" },
1399  { ":u7981:", "🈲" },
1400  { ":u7a7a:", "🈳" },
1401  { ":uganda:", "🇺🇬" },
1402  { ":uk:", "🇬🇧" },
1403  { ":ukraine:", "🇺🇦" },
1404  { ":umbrella:", "☔" },
1405  { ":unamused:", "😒" },
1406  { ":underage:", "🔞" },
1407  { ":unicorn:", "🦄" },
1408  { ":united_arab_emirates:", "🇦🇪" },
1409  { ":unlock:", "🔓" },
1410  { ":up:", "🆙" },
1411  { ":upside_down_face:", "🙃" },
1412  { ":uruguay:", "🇺🇾" },
1413  { ":us:", "🇺🇸" },
1414  { ":us_virgin_islands:", "🇻🇮" },
1415  { ":uzbekistan:", "🇺🇿" },
1416  { ":v:", "✌" },
1417  { ":vanuatu:", "🇻🇺" },
1418  { ":vatican_city:", "🇻🇦" },
1419  { ":venezuela:", "🇻🇪" },
1420  { ":vertical_traffic_light:", "🚦" },
1421  { ":vhs:", "📼" },
1422  { ":vibration_mode:", "📳" },
1423  { ":video_camera:", "📹" },
1424  { ":video_game:", "🎮" },
1425  { ":vietnam:", "🇻🇳" },
1426  { ":violin:", "🎻" },
1427  { ":virgo:", "♍" },
1428  { ":volcano:", "🌋" },
1429  { ":volleyball:", "🏐" },
1430  { ":vs:", "🆚" },
1431  { ":vulcan_salute:", "🖖" },
1432  { ":walking:", "🚶" },
1433  { ":walking_man:", "🚶" },
1434  { ":walking_woman:", "🚶♀" },
1435  { ":wallis_futuna:", "🇼🇫" },
1436  { ":waning_crescent_moon:", "🌘" },
1437  { ":waning_gibbous_moon:", "🌖" },
1438  { ":warning:", "⚠" },
1439  { ":wastebasket:", "🗑" },
1440  { ":watch:", "⌚" },
1441  { ":water_buffalo:", "🐃" },
1442  { ":watermelon:", "🍉" },
1443  { ":wave:", "👋" },
1444  { ":wavy_dash:", "〰" },
1445  { ":waxing_crescent_moon:", "🌒" },
1446  { ":waxing_gibbous_moon:", "🌔" },
1447  { ":wc:", "🚾" },
1448  { ":weary:", "😩" },
1449  { ":wedding:", "💒" },
1450  { ":weight_lifting_man:", "🏋" },
1451  { ":weight_lifting_woman:", "🏋♀" },
1452  { ":western_sahara:", "🇪🇭" },
1453  { ":whale:", "🐳" },
1454  { ":whale2:", "🐋" },
1455  { ":wheel_of_dharma:", "☸" },
1456  { ":wheelchair:", "♿" },
1457  { ":white_check_mark:", "✅" },
1458  { ":white_circle:", "⚪" },
1459  { ":white_flag:", "🏳" },
1460  { ":white_flower:", "💮" },
1461  { ":white_large_square:", "⬜" },
1462  { ":white_medium_small_square:", "◽" },
1463  { ":white_medium_square:", "◻" },
1464  { ":white_small_square:", "▫" },
1465  { ":white_square_button:", "🔳" },
1466  { ":wilted_flower:", "🥀" },
1467  { ":wind_chime:", "🎐" },
1468  { ":wind_face:", "🌬" },
1469  { ":wine_glass:", "🍷" },
1470  { ":wink:", "😉" },
1471  { ":wolf:", "🐺" },
1472  { ":woman:", "👩" },
1473  { ":woman_artist:", "👩🎨" },
1474  { ":woman_astronaut:", "👩🚀" },
1475  { ":woman_cartwheeling:", "🤸♀" },
1476  { ":woman_cook:", "👩🍳" },
1477  { ":woman_facepalming:", "🤦♀" },
1478  { ":woman_factory_worker:", "👩🏭" },
1479  { ":woman_farmer:", "👩🌾" },
1480  { ":woman_firefighter:", "👩🚒" },
1481  { ":woman_health_worker:", "👩⚕" },
1482  { ":woman_judge:", "👩⚖" },
1483  { ":woman_juggling:", "🤹♀" },
1484  { ":woman_mechanic:", "👩🔧" },
1485  { ":woman_office_worker:", "👩💼" },
1486  { ":woman_pilot:", "👩✈" },
1487  { ":woman_playing_handball:", "🤾♀" },
1488  { ":woman_playing_water_polo:", "🤽♀" },
1489  { ":woman_scientist:", "👩🔬" },
1490  { ":woman_shrugging:", "🤷♀" },
1491  { ":woman_singer:", "👩🎤" },
1492  { ":woman_student:", "👩🎓" },
1493  { ":woman_teacher:", "👩🏫" },
1494  { ":woman_technologist:", "👩💻" },
1495  { ":woman_with_turban:", "👳♀" },
1496  { ":womans_clothes:", "👚" },
1497  { ":womans_hat:", "👒" },
1498  { ":women_wrestling:", "🤼♀" },
1499  { ":womens:", "🚺" },
1500  { ":world_map:", "🗺" },
1501  { ":worried:", "😟" },
1502  { ":wrench:", "🔧" },
1503  { ":writing_hand:", "✍" },
1504  { ":x:", "❌" },
1505  { ":yellow_heart:", "💛" },
1506  { ":yemen:", "🇾🇪" },
1507  { ":yen:", "💴" },
1508  { ":yin_yang:", "☯" },
1509  { ":yum:", "😋" },
1510  { ":zambia:", "🇿🇲" },
1511  { ":zap:", "⚡" },
1512  { ":zero:", "0⃣" },
1513  { ":zimbabwe:", "🇿🇼" },
1514  { ":zipper_mouth_face:", "🤐" },
1515  { ":zzz:", "💤" }
1516 };
1517 
1518 static const int g_numEmojiEntities = (int)(sizeof(g_emojiEntities)/sizeof(*g_emojiEntities));
1519 
1521 
1523 {
1524  // 2 loops to be able to give precedence to the unicodeName (CLDR)
1525  for (int i = 0; i < g_numEmojiEntities; i++)
1526  {
1527  m_name2symGh.insert(std::make_pair(g_emojiEntities[i].name, i));
1528  }
1529 }
1530 
1532 {
1533 }
1534 
1535 /** Returns the one and only instance of the Emoji entity mapper */
1537 {
1538  if (s_instance==0)
1539  {
1541  }
1542  return s_instance;
1543 }
1544 
1545 /** Deletes the one and only instance of the Emoji entity mapper */
1547 {
1548  delete s_instance;
1549  s_instance=0;
1550 }
1551 
1552 /*!
1553  * @brief Returns a code for the requested Emoji entity name
1554  * @param symName Emoji entity name
1555  * @return the code for the requested Emoji entity name,
1556  * in case the requested Emoji item does not exist `-1` is returned.
1557  */
1558 int EmojiEntityMapper::symbol2index(const std::string &symName) const
1559 {
1560  auto it = m_name2symGh.find(symName);
1561  return it!=m_name2symGh.end() ? it->second : -1;
1562 }
1563 
1564 /*!
1565  * @brief Writes the list of supported emojis to the given file.
1566  */
1568 {
1569  for (int i = 0; i < g_numEmojiEntities; i++)
1570  {
1571  t << g_emojiEntities[i].name << "\n";
1572  }
1573 }
1574 
1575 /*! @brief Access routine to the unicode sequence for the Emoji entity
1576  *
1577  * @param index code of the requested Emoji entity returned by symbol2index()
1578  * @return the unicode sequence of the Emoji entity,
1579  */
1580 const char *EmojiEntityMapper::unicode(int index) const
1581 {
1582  return index>=0 && index<g_numEmojiEntities ? g_emojiEntities[index].unicode : 0;
1583 }
1584 
1585 /*! @brief Access routine to the name of the Emoji entity
1586  *
1587  * @param index code of the requested Emoji entity returned by symbol2index()
1588  * @return the name of the Emoji entity in GitHub format (i.e. :smile:)
1589  */
1590 const char *EmojiEntityMapper::name(int index) const
1591 {
1592  return index>=0 && index<g_numEmojiEntities ? g_emojiEntities[index].name : 0;
1593 }
1594 
1595 
g_emojiEntities
static struct emojiEntityInfo g_emojiEntities[]
emojiEntityInfo::unicode
const char * unicode
Definition: emoji.cpp:37
EmojiEntityMapper::m_name2symGh
std::map< std::string, int > m_name2symGh
Definition: emoji.h:38
EmojiEntityMapper::deleteInstance
static void deleteInstance()
Deletes the one and only instance of the Emoji entity mapper
Definition: emoji.cpp:1546
emojiEntityInfo
Definition: emoji.cpp:21
textstream.h
TextStream
Text streaming class that buffers data.
Definition: textstream.h:33
EmojiEntityMapper::EmojiEntityMapper
EmojiEntityMapper()
Definition: emoji.cpp:1522
EmojiEntityMapper::name
const char * name(int index) const
Access routine to the name of the Emoji entity
Definition: emoji.cpp:1590
EmojiEntityMapper::~EmojiEntityMapper
~EmojiEntityMapper()
Definition: emoji.cpp:1531
EmojiEntityMapper::unicode
const char * unicode(int index) const
Access routine to the unicode sequence for the Emoji entity
Definition: emoji.cpp:1580
message.h
g_numEmojiEntities
static const int g_numEmojiEntities
Definition: emoji.cpp:1518
EmojiEntityMapper::s_instance
static EmojiEntityMapper * s_instance
Definition: emoji.h:37
EmojiEntityMapper::symbol2index
int symbol2index(const std::string &symName) const
Returns a code for the requested Emoji entity name
Definition: emoji.cpp:1558
emojiEntityInfo::name
const char * name
Definition: emoji.cpp:36
EmojiEntityMapper
Singleton helper class to map emoji entities to other formats
Definition: emoji.h:24
emoji.h
EmojiEntityMapper::instance
static EmojiEntityMapper * instance()
Returns the one and only instance of the Emoji entity mapper
Definition: emoji.cpp:1536
EmojiEntityMapper::writeEmojiFile
void writeEmojiFile(TextStream &t)
Writes the list of supported emojis to the given file.
Definition: emoji.cpp:1567
util.h
A bunch of utility functions.