• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* == Start of generated table == */
2 /*
3  * The following tables are generated by running:
4  *
5  *   ./gen-emoji-table.py emoji-data.txt
6  *
7  * on file with this header:
8  *
9  * # emoji-data.txt
10  * # Date: 2019-01-15, 12:10:05 GMT
11  * # © 2019 Unicode®, Inc.
12  * # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
13  * # For terms of use, see http://www.unicode.org/terms_of_use.html
14  * #
15  * # Emoji Data for UTS #51
16  * # Version: 12.0
17  * #
18  * # For documentation and usage, see http://www.unicode.org/reports/tr51
19  */
20 
21 #ifndef HB_UNICODE_EMOJI_TABLE_HH
22 #define HB_UNICODE_EMOJI_TABLE_HH
23 
24 #include "hb-unicode.hh"
25 
26 static const uint8_t
27 _hb_emoji_u8[448] =
28 {
29     0,  0,  0,  0, 33,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
30     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
31     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
32     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 84,118,
33     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
34     0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  2,  0,  0,  3,
35     0,  0,  0,  0,  0,  0,  4,  5,  6,  7,  8,  7,  9, 10, 11,  0,
36     0,  0,  0,  0, 12,  0,  0,  0,  0,  0,  0,  0, 13,  0,  0,  0,
37     7,  7,  7, 14, 15, 16, 17, 18, 19, 20,  7,  7,  7,  7,  7, 21,
38     7,  7,  7,  7, 22, 23,  7,  7,  7, 24,  7, 14,  0, 25,  0, 26,
39    27, 28, 29, 14, 30, 31,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,
40     7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7, 22,
41     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,240,  1,  0,  2,  0,  0,
42     0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,254,  7,  3,
43     0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0, 56,
44   159,255,243,255,255,255,255,255,255,255,255,255,255,255,255,255,
45    31,  0,255,255,255,255,255,255, 31,255,  3,  0,  0,  0,  8,  0,
46     0,  0, 24,  0,120,  0,  0,  0,  0,  0, 96,  0,  0,  0,  0,  0,
47     0,  0,  0,  0,  0,  0, 16,  0, 96,  0,  0,  8,  0,  0,  0,  0,
48   255,255,255,255,255,255,255,127,  0, 96,  0,  0,  0,  0,  0,  0,
49     0,  0,  0,  0,  0,240,  1, 64,  0,  0,254,  3,  0,224,255,255,
50   255,255,255,255, 31,  0,  0,  0,254,127,  0,  0,  0,  0,252,115,
51     0,254,255,255,255,255,255,255,255,255,255,255,255,255,255,  3,
52   255,255,255,255,255,255,255, 31,192,255,255,255,255,255,255,255,
53   255,127,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,240,127,
54     0,  0,224,255,255,255,255,127,  0,112,  0,  0,  0,  0,  0,  0,
55     0,127,  0,124,  0,  0,  0,  0,  0,127,  0,  0,  0,192,255,255,
56     0,240,255,255,255,255,255,243,159,255,255,255,255,255,255,255,
57 };
58 
59 static inline unsigned
_hb_emoji_b4(const uint8_t * a,unsigned i)60 _hb_emoji_b4 (const uint8_t* a, unsigned i)
61 {
62   return (a[i>>1]>>((i&1u)<<2))&15u;
63 }
64 static inline unsigned
_hb_emoji_b1(const uint8_t * a,unsigned i)65 _hb_emoji_b1 (const uint8_t* a, unsigned i)
66 {
67   return (a[i>>3]>>((i&7u)<<0))&1u;
68 }
69 static inline uint_fast8_t
_hb_emoji_is_Extended_Pictographic(unsigned u)70 _hb_emoji_is_Extended_Pictographic (unsigned u)
71 {
72   return u<131069u?_hb_emoji_b1(192+_hb_emoji_u8,((_hb_emoji_u8[64+(((_hb_emoji_b4(_hb_emoji_u8,u>>6>>4))<<4)+((u>>6)&15u))])<<6)+((u)&63u)):0;
73 }
74 
75 
76 #endif /* HB_UNICODE_EMOJI_TABLE_HH */
77 
78 /* == End of generated table == */
79