Home | History | Annotate | Download | only in tables
      1 // Generated from Unicode script tables
      2 
      3 #ifndef SCRIPT_PROPERTIES_H_
      4 #define SCRIPT_PROPERTIES_H_
      5 
      6 #include <stdint.h>
      7 #include "harfbuzz-shaper.h"
      8 
      9 struct script_property {
     10   uint32_t range_start;
     11   uint32_t range_end;
     12   HB_Script script;
     13 };
     14 
     15 static const struct script_property script_properties[] = {
     16   {0x300, 0x36f, HB_Script_Inherited},
     17   {0x370, 0x373, HB_Script_Greek},
     18   {0x375, 0x377, HB_Script_Greek},
     19   {0x37a, 0x37d, HB_Script_Greek},
     20   {0x384, 0x384, HB_Script_Greek},
     21   {0x386, 0x386, HB_Script_Greek},
     22   {0x388, 0x38a, HB_Script_Greek},
     23   {0x38c, 0x38c, HB_Script_Greek},
     24   {0x38e, 0x3a1, HB_Script_Greek},
     25   {0x3a3, 0x3e1, HB_Script_Greek},
     26   {0x3f0, 0x3ff, HB_Script_Greek},
     27   {0x400, 0x523, HB_Script_Cyrillic},
     28   {0x531, 0x556, HB_Script_Armenian},
     29   {0x559, 0x55f, HB_Script_Armenian},
     30   {0x561, 0x587, HB_Script_Armenian},
     31   {0x58a, 0x58a, HB_Script_Armenian},
     32   {0x591, 0x5c7, HB_Script_Hebrew},
     33   {0x5d0, 0x5ea, HB_Script_Hebrew},
     34   {0x5f0, 0x5f4, HB_Script_Hebrew},
     35   /* BEGIN android-changed
     36      Some Arabic glyphs were just detected as HB_Script_Common when trying to get the script
     37      from their Unicode Point.
     38      The most relevant case is concerning the Android IME / Keyboard for Arabic as he is trying
     39      to shape diacritical marks (as single code point) for showing them on Keys.
     40      Also, putting uni0640, uni064B-uni0655 and uni0670 as Arabic can break Syriac script
     41   */
     42   {0x600, 0x603, HB_Script_Arabic},
     43   {0x606, 0x60f, HB_Script_Arabic},
     44   {0x610, 0x61b, HB_Script_Arabic},
     45   {0x61e, 0x61f, HB_Script_Arabic},
     46   {0x620, 0x63f, HB_Script_Arabic},
     47   {0x640, 0x64a, HB_Script_Arabic},
     48   {0x64b, 0x655, HB_Script_Arabic}, // was: HB_Script_Inherited
     49   {0x656, 0x65f, HB_Script_Arabic},
     50   {0x660, 0x669, HB_Script_Arabic},
     51   {0x66a, 0x66f, HB_Script_Arabic},
     52   {0x670, 0x670, HB_Script_Arabic}, // was: HB_Script_Inherited
     53   /* END android-changed */
     54   {0x671, 0x6dc, HB_Script_Arabic},
     55   {0x6de, 0x6ff, HB_Script_Arabic},
     56   {0x700, 0x70d, HB_Script_Syriac},
     57   {0x70f, 0x74a, HB_Script_Syriac},
     58   {0x74d, 0x74f, HB_Script_Syriac},
     59   {0x750, 0x77f, HB_Script_Arabic},
     60   {0x780, 0x7b1, HB_Script_Thaana},
     61   {0x901, 0x939, HB_Script_Devanagari},
     62   {0x93c, 0x94d, HB_Script_Devanagari},
     63   {0x950, 0x950, HB_Script_Devanagari},
     64   {0x951, 0x952, HB_Script_Inherited},
     65   {0x953, 0x954, HB_Script_Devanagari},
     66   {0x958, 0x963, HB_Script_Devanagari},
     67   {0x966, 0x96f, HB_Script_Devanagari},
     68   {0x971, 0x972, HB_Script_Devanagari},
     69   {0x97b, 0x97f, HB_Script_Devanagari},
     70   {0x981, 0x983, HB_Script_Bengali},
     71   {0x985, 0x98c, HB_Script_Bengali},
     72   {0x98f, 0x990, HB_Script_Bengali},
     73   {0x993, 0x9a8, HB_Script_Bengali},
     74   {0x9aa, 0x9b0, HB_Script_Bengali},
     75   {0x9b2, 0x9b2, HB_Script_Bengali},
     76   {0x9b6, 0x9b9, HB_Script_Bengali},
     77   {0x9bc, 0x9c4, HB_Script_Bengali},
     78   {0x9c7, 0x9c8, HB_Script_Bengali},
     79   {0x9cb, 0x9ce, HB_Script_Bengali},
     80   {0x9d7, 0x9d7, HB_Script_Bengali},
     81   {0x9dc, 0x9dd, HB_Script_Bengali},
     82   {0x9df, 0x9e3, HB_Script_Bengali},
     83   {0x9e6, 0x9fa, HB_Script_Bengali},
     84   {0xa01, 0xa03, HB_Script_Gurmukhi},
     85   {0xa05, 0xa0a, HB_Script_Gurmukhi},
     86   {0xa0f, 0xa10, HB_Script_Gurmukhi},
     87   {0xa13, 0xa28, HB_Script_Gurmukhi},
     88   {0xa2a, 0xa30, HB_Script_Gurmukhi},
     89   {0xa32, 0xa33, HB_Script_Gurmukhi},
     90   {0xa35, 0xa36, HB_Script_Gurmukhi},
     91   {0xa38, 0xa39, HB_Script_Gurmukhi},
     92   {0xa3c, 0xa3c, HB_Script_Gurmukhi},
     93   {0xa3e, 0xa42, HB_Script_Gurmukhi},
     94   {0xa47, 0xa48, HB_Script_Gurmukhi},
     95   {0xa4b, 0xa4d, HB_Script_Gurmukhi},
     96   {0xa51, 0xa51, HB_Script_Gurmukhi},
     97   {0xa59, 0xa5c, HB_Script_Gurmukhi},
     98   {0xa5e, 0xa5e, HB_Script_Gurmukhi},
     99   {0xa66, 0xa75, HB_Script_Gurmukhi},
    100   {0xa81, 0xa83, HB_Script_Gujarati},
    101   {0xa85, 0xa8d, HB_Script_Gujarati},
    102   {0xa8f, 0xa91, HB_Script_Gujarati},
    103   {0xa93, 0xaa8, HB_Script_Gujarati},
    104   {0xaaa, 0xab0, HB_Script_Gujarati},
    105   {0xab2, 0xab3, HB_Script_Gujarati},
    106   {0xab5, 0xab9, HB_Script_Gujarati},
    107   {0xabc, 0xac5, HB_Script_Gujarati},
    108   {0xac7, 0xac9, HB_Script_Gujarati},
    109   {0xacb, 0xacd, HB_Script_Gujarati},
    110   {0xad0, 0xad0, HB_Script_Gujarati},
    111   {0xae0, 0xae3, HB_Script_Gujarati},
    112   {0xae6, 0xaef, HB_Script_Gujarati},
    113   {0xaf1, 0xaf1, HB_Script_Gujarati},
    114   {0xb01, 0xb03, HB_Script_Oriya},
    115   {0xb05, 0xb0c, HB_Script_Oriya},
    116   {0xb0f, 0xb10, HB_Script_Oriya},
    117   {0xb13, 0xb28, HB_Script_Oriya},
    118   {0xb2a, 0xb30, HB_Script_Oriya},
    119   {0xb32, 0xb33, HB_Script_Oriya},
    120   {0xb35, 0xb39, HB_Script_Oriya},
    121   {0xb3c, 0xb44, HB_Script_Oriya},
    122   {0xb47, 0xb48, HB_Script_Oriya},
    123   {0xb4b, 0xb4d, HB_Script_Oriya},
    124   {0xb56, 0xb57, HB_Script_Oriya},
    125   {0xb5c, 0xb5d, HB_Script_Oriya},
    126   {0xb5f, 0xb63, HB_Script_Oriya},
    127   {0xb66, 0xb71, HB_Script_Oriya},
    128   {0xb82, 0xb83, HB_Script_Tamil},
    129   {0xb85, 0xb8a, HB_Script_Tamil},
    130   {0xb8e, 0xb90, HB_Script_Tamil},
    131   {0xb92, 0xb95, HB_Script_Tamil},
    132   {0xb99, 0xb9a, HB_Script_Tamil},
    133   {0xb9c, 0xb9c, HB_Script_Tamil},
    134   {0xb9e, 0xb9f, HB_Script_Tamil},
    135   {0xba3, 0xba4, HB_Script_Tamil},
    136   {0xba8, 0xbaa, HB_Script_Tamil},
    137   {0xbae, 0xbb9, HB_Script_Tamil},
    138   {0xbbe, 0xbc2, HB_Script_Tamil},
    139   {0xbc6, 0xbc8, HB_Script_Tamil},
    140   {0xbca, 0xbcd, HB_Script_Tamil},
    141   {0xbd0, 0xbd0, HB_Script_Tamil},
    142   {0xbd7, 0xbd7, HB_Script_Tamil},
    143   {0xbe6, 0xbfa, HB_Script_Tamil},
    144   {0xc01, 0xc03, HB_Script_Telugu},
    145   {0xc05, 0xc0c, HB_Script_Telugu},
    146   {0xc0e, 0xc10, HB_Script_Telugu},
    147   {0xc12, 0xc28, HB_Script_Telugu},
    148   {0xc2a, 0xc33, HB_Script_Telugu},
    149   {0xc35, 0xc39, HB_Script_Telugu},
    150   {0xc3d, 0xc44, HB_Script_Telugu},
    151   {0xc46, 0xc48, HB_Script_Telugu},
    152   {0xc4a, 0xc4d, HB_Script_Telugu},
    153   {0xc55, 0xc56, HB_Script_Telugu},
    154   {0xc58, 0xc59, HB_Script_Telugu},
    155   {0xc60, 0xc63, HB_Script_Telugu},
    156   {0xc66, 0xc6f, HB_Script_Telugu},
    157   {0xc78, 0xc7f, HB_Script_Telugu},
    158   {0xc82, 0xc83, HB_Script_Kannada},
    159   {0xc85, 0xc8c, HB_Script_Kannada},
    160   {0xc8e, 0xc90, HB_Script_Kannada},
    161   {0xc92, 0xca8, HB_Script_Kannada},
    162   {0xcaa, 0xcb3, HB_Script_Kannada},
    163   {0xcb5, 0xcb9, HB_Script_Kannada},
    164   {0xcbc, 0xcc4, HB_Script_Kannada},
    165   {0xcc6, 0xcc8, HB_Script_Kannada},
    166   {0xcca, 0xccd, HB_Script_Kannada},
    167   {0xcd5, 0xcd6, HB_Script_Kannada},
    168   {0xcde, 0xcde, HB_Script_Kannada},
    169   {0xce0, 0xce3, HB_Script_Kannada},
    170   {0xce6, 0xcef, HB_Script_Kannada},
    171   {0xd02, 0xd03, HB_Script_Malayalam},
    172   {0xd05, 0xd0c, HB_Script_Malayalam},
    173   {0xd0e, 0xd10, HB_Script_Malayalam},
    174   {0xd12, 0xd28, HB_Script_Malayalam},
    175   {0xd2a, 0xd39, HB_Script_Malayalam},
    176   {0xd3d, 0xd44, HB_Script_Malayalam},
    177   {0xd46, 0xd48, HB_Script_Malayalam},
    178   {0xd4a, 0xd4d, HB_Script_Malayalam},
    179   {0xd57, 0xd57, HB_Script_Malayalam},
    180   {0xd60, 0xd63, HB_Script_Malayalam},
    181   {0xd66, 0xd75, HB_Script_Malayalam},
    182   {0xd79, 0xd7f, HB_Script_Malayalam},
    183   {0xd82, 0xd83, HB_Script_Sinhala},
    184   {0xd85, 0xd96, HB_Script_Sinhala},
    185   {0xd9a, 0xdb1, HB_Script_Sinhala},
    186   {0xdb3, 0xdbb, HB_Script_Sinhala},
    187   {0xdbd, 0xdbd, HB_Script_Sinhala},
    188   {0xdc0, 0xdc6, HB_Script_Sinhala},
    189   {0xdca, 0xdca, HB_Script_Sinhala},
    190   {0xdcf, 0xdd4, HB_Script_Sinhala},
    191   {0xdd6, 0xdd6, HB_Script_Sinhala},
    192   {0xdd8, 0xddf, HB_Script_Sinhala},
    193   {0xdf2, 0xdf4, HB_Script_Sinhala},
    194   {0xe01, 0xe3a, HB_Script_Thai},
    195   {0xe40, 0xe5b, HB_Script_Thai},
    196   {0xe81, 0xe82, HB_Script_Lao},
    197   {0xe84, 0xe84, HB_Script_Lao},
    198   {0xe87, 0xe88, HB_Script_Lao},
    199   {0xe8a, 0xe8a, HB_Script_Lao},
    200   {0xe8d, 0xe8d, HB_Script_Lao},
    201   {0xe94, 0xe97, HB_Script_Lao},
    202   {0xe99, 0xe9f, HB_Script_Lao},
    203   {0xea1, 0xea3, HB_Script_Lao},
    204   {0xea5, 0xea5, HB_Script_Lao},
    205   {0xea7, 0xea7, HB_Script_Lao},
    206   {0xeaa, 0xeab, HB_Script_Lao},
    207   {0xead, 0xeb9, HB_Script_Lao},
    208   {0xebb, 0xebd, HB_Script_Lao},
    209   {0xec0, 0xec4, HB_Script_Lao},
    210   {0xec6, 0xec6, HB_Script_Lao},
    211   {0xec8, 0xecd, HB_Script_Lao},
    212   {0xed0, 0xed9, HB_Script_Lao},
    213   {0xedc, 0xedd, HB_Script_Lao},
    214   {0xf00, 0xf47, HB_Script_Tibetan},
    215   {0xf49, 0xf6c, HB_Script_Tibetan},
    216   {0xf71, 0xf8b, HB_Script_Tibetan},
    217   {0xf90, 0xf97, HB_Script_Tibetan},
    218   {0xf99, 0xfbc, HB_Script_Tibetan},
    219   {0xfbe, 0xfcc, HB_Script_Tibetan},
    220   {0xfce, 0xfd4, HB_Script_Tibetan},
    221   {0x1000, 0x1099, HB_Script_Myanmar},
    222   {0x109e, 0x109f, HB_Script_Myanmar},
    223   {0x10a0, 0x10c5, HB_Script_Georgian},
    224   {0x10d0, 0x10fa, HB_Script_Georgian},
    225   {0x10fc, 0x10fc, HB_Script_Georgian},
    226   {0x1100, 0x1159, HB_Script_Hangul},
    227   {0x115f, 0x11a2, HB_Script_Hangul},
    228   {0x11a8, 0x11f9, HB_Script_Hangul},
    229   {0x1680, 0x169c, HB_Script_Ogham},
    230   {0x16a0, 0x16ea, HB_Script_Runic},
    231   {0x16ee, 0x16f0, HB_Script_Runic},
    232   {0x1780, 0x17dd, HB_Script_Khmer},
    233   {0x17e0, 0x17e9, HB_Script_Khmer},
    234   {0x17f0, 0x17f9, HB_Script_Khmer},
    235   {0x19e0, 0x19ff, HB_Script_Khmer},
    236   {0x1d26, 0x1d2a, HB_Script_Greek},
    237   {0x1d2b, 0x1d2b, HB_Script_Cyrillic},
    238   {0x1d5d, 0x1d61, HB_Script_Greek},
    239   {0x1d66, 0x1d6a, HB_Script_Greek},
    240   {0x1d78, 0x1d78, HB_Script_Cyrillic},
    241   {0x1dbf, 0x1dbf, HB_Script_Greek},
    242   {0x1dc0, 0x1de6, HB_Script_Inherited},
    243   {0x1dfe, 0x1dff, HB_Script_Inherited},
    244   {0x1f00, 0x1f15, HB_Script_Greek},
    245   {0x1f18, 0x1f1d, HB_Script_Greek},
    246   {0x1f20, 0x1f45, HB_Script_Greek},
    247   {0x1f48, 0x1f4d, HB_Script_Greek},
    248   {0x1f50, 0x1f57, HB_Script_Greek},
    249   {0x1f59, 0x1f59, HB_Script_Greek},
    250   {0x1f5b, 0x1f5b, HB_Script_Greek},
    251   {0x1f5d, 0x1f5d, HB_Script_Greek},
    252   {0x1f5f, 0x1f7d, HB_Script_Greek},
    253   {0x1f80, 0x1fb4, HB_Script_Greek},
    254   {0x1fb6, 0x1fc4, HB_Script_Greek},
    255   {0x1fc6, 0x1fd3, HB_Script_Greek},
    256   {0x1fd6, 0x1fdb, HB_Script_Greek},
    257   {0x1fdd, 0x1fef, HB_Script_Greek},
    258   {0x1ff2, 0x1ff4, HB_Script_Greek},
    259   {0x1ff6, 0x1ffe, HB_Script_Greek},
    260   {0x200c, 0x200d, HB_Script_Inherited},
    261   {0x20d0, 0x20f0, HB_Script_Inherited},
    262   {0x2126, 0x2126, HB_Script_Greek},
    263   {0x2d00, 0x2d25, HB_Script_Georgian},
    264   {0x2de0, 0x2dff, HB_Script_Cyrillic},
    265   {0x302a, 0x302f, HB_Script_Inherited},
    266   {0x3099, 0x309a, HB_Script_Inherited},
    267   {0x3131, 0x318e, HB_Script_Hangul},
    268   {0x3200, 0x321e, HB_Script_Hangul},
    269   {0x3260, 0x327e, HB_Script_Hangul},
    270   {0xa640, 0xa65f, HB_Script_Cyrillic},
    271   {0xa662, 0xa673, HB_Script_Cyrillic},
    272   {0xa67c, 0xa697, HB_Script_Cyrillic},
    273   {0xac00, 0xd7a3, HB_Script_Hangul},
    274   {0xfb13, 0xfb17, HB_Script_Armenian},
    275   {0xfb1d, 0xfb36, HB_Script_Hebrew},
    276   {0xfb38, 0xfb3c, HB_Script_Hebrew},
    277   {0xfb3e, 0xfb3e, HB_Script_Hebrew},
    278   {0xfb40, 0xfb41, HB_Script_Hebrew},
    279   {0xfb43, 0xfb44, HB_Script_Hebrew},
    280   {0xfb46, 0xfb4f, HB_Script_Hebrew},
    281   {0xfb50, 0xfbb1, HB_Script_Arabic},
    282   {0xfbd3, 0xfd3d, HB_Script_Arabic},
    283   {0xfd50, 0xfd8f, HB_Script_Arabic},
    284   {0xfd92, 0xfdc7, HB_Script_Arabic},
    285   {0xfdf0, 0xfdfc, HB_Script_Arabic},
    286   {0xfe00, 0xfe0f, HB_Script_Inherited},
    287   {0xfe20, 0xfe26, HB_Script_Inherited},
    288   {0xfe70, 0xfe74, HB_Script_Arabic},
    289   {0xfe76, 0xfefc, HB_Script_Arabic},
    290   {0xffa0, 0xffbe, HB_Script_Hangul},
    291   {0xffc2, 0xffc7, HB_Script_Hangul},
    292   {0xffca, 0xffcf, HB_Script_Hangul},
    293   {0xffd2, 0xffd7, HB_Script_Hangul},
    294   {0xffda, 0xffdc, HB_Script_Hangul},
    295   {0x10140, 0x1018a, HB_Script_Greek},
    296   {0x101fd, 0x101fd, HB_Script_Inherited},
    297   {0x1d167, 0x1d169, HB_Script_Inherited},
    298   {0x1d17b, 0x1d182, HB_Script_Inherited},
    299   {0x1d185, 0x1d18b, HB_Script_Inherited},
    300   {0x1d1aa, 0x1d1ad, HB_Script_Inherited},
    301   {0x1d200, 0x1d245, HB_Script_Greek},
    302   {0xe0100, 0xe01ef, HB_Script_Inherited},
    303 };
    304 
    305 static const unsigned script_properties_count = 277;
    306 
    307 #endif  // SCRIPT_PROPERTIES_H_
    308