[USE] Fix-up variation selectors and word joiner in table
This commit is contained in:
parent
ad7178227f
commit
2d4b62ead9
|
@ -41,8 +41,11 @@ for i, f in enumerate (files):
|
||||||
|
|
||||||
defaults = ('Other', 'Not_Applicable', 'Cn', 'No_Block')
|
defaults = ('Other', 'Not_Applicable', 'Cn', 'No_Block')
|
||||||
|
|
||||||
# TODO CGJ is not in Unicode Indic files, but used in USE
|
# TODO Characters that are not in Unicode Indic files, but used in USE
|
||||||
data[0][0x034F] = defaults[0]
|
data[0][0x034F] = defaults[0]
|
||||||
|
data[0][0x2060] = defaults[0]
|
||||||
|
for u in range (0xFE00, 0xFE0F + 1):
|
||||||
|
data[0][u] = defaults[0]
|
||||||
|
|
||||||
# Merge data into one dict:
|
# Merge data into one dict:
|
||||||
for i,v in enumerate (defaults):
|
for i,v in enumerate (defaults):
|
||||||
|
@ -187,6 +190,8 @@ def is_OTHER(U, UISC, UGC):
|
||||||
return (UISC == Other
|
return (UISC == Other
|
||||||
and not is_SYM_MOD(U, UISC, UGC)
|
and not is_SYM_MOD(U, UISC, UGC)
|
||||||
and not is_CGJ(U, UISC, UGC)
|
and not is_CGJ(U, UISC, UGC)
|
||||||
|
and not is_Word_Joiner(U, UISC, UGC)
|
||||||
|
and not is_VARIATION_SELECTOR(U, UISC, UGC)
|
||||||
)
|
)
|
||||||
def is_Reserved(U, UISC, UGC):
|
def is_Reserved(U, UISC, UGC):
|
||||||
return UGC == 'Cn'
|
return UGC == 'Cn'
|
||||||
|
|
|
@ -333,15 +333,16 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = {
|
||||||
O, O, O, O, ZWNJ, ZWJ, O, O,
|
O, O, O, O, ZWNJ, ZWJ, O, O,
|
||||||
/* 2010 */ GB, GB, GB, GB, GB, O, O, O,
|
/* 2010 */ GB, GB, GB, GB, GB, O, O, O,
|
||||||
|
|
||||||
#define use_offset_0x2070u 2568
|
#define use_offset_0x2060u 2568
|
||||||
|
|
||||||
|
/* 2060 */ WJ, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O,
|
||||||
|
|
||||||
/* Superscripts and Subscripts */
|
/* Superscripts and Subscripts */
|
||||||
|
|
||||||
/* 2070 */ O, O, O, O, FM, O, O, O, O, O, O, O, O, O, O, O,
|
/* 2070 */ O, O, O, O, FM, O, O, O, O, O, O, O, O, O, O, O,
|
||||||
/* 2080 */ O, O, FM, FM, FM, O, O, O,
|
/* 2080 */ O, O, FM, FM, FM, O, O, O,
|
||||||
|
|
||||||
#define use_offset_0xa800u 2592
|
#define use_offset_0xa800u 2608
|
||||||
|
|
||||||
|
|
||||||
/* Syloti Nagri */
|
/* Syloti Nagri */
|
||||||
|
@ -428,7 +429,7 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = {
|
||||||
/* AAE0 */ IV, IV, B, B, B, B, B, B, B, B, B, VPre, VBlw, VAbv, VPre, VPst,
|
/* AAE0 */ IV, IV, B, B, B, B, B, B, B, B, B, VPre, VBlw, VAbv, VPre, VPst,
|
||||||
/* AAF0 */ O, O, O, O, O, VMPst, H, O,
|
/* AAF0 */ O, O, O, O, O, VMPst, H, O,
|
||||||
|
|
||||||
#define use_offset_0xabc0u 3352
|
#define use_offset_0xabc0u 3368
|
||||||
|
|
||||||
|
|
||||||
/* Meetei Mayek */
|
/* Meetei Mayek */
|
||||||
|
@ -438,7 +439,14 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = {
|
||||||
/* ABE0 */ B, B, B, VPst, VPst, VAbv, VPst, VPst, VBlw, VPst, VPst, O, VMPst, VBlw, O, O,
|
/* ABE0 */ B, B, B, VPst, VPst, VAbv, VPst, VPst, VBlw, VPst, VPst, O, VMPst, VBlw, O, O,
|
||||||
/* ABF0 */ B, B, B, B, B, B, B, B, B, B, O, O, O, O, O, O,
|
/* ABF0 */ B, B, B, B, B, B, B, B, B, B, O, O, O, O, O, O,
|
||||||
|
|
||||||
#define use_offset_0x10a00u 3416
|
#define use_offset_0xfe00u 3432
|
||||||
|
|
||||||
|
|
||||||
|
/* Variation Selectors */
|
||||||
|
|
||||||
|
/* FE00 */ VS, VS, VS, VS, VS, VS, VS, VS, VS, VS, VS, VS, VS, VS, VS, VS,
|
||||||
|
|
||||||
|
#define use_offset_0x10a00u 3448
|
||||||
|
|
||||||
|
|
||||||
/* Kharoshthi */
|
/* Kharoshthi */
|
||||||
|
@ -449,7 +457,7 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = {
|
||||||
/* 10A30 */ B, B, B, B, O, O, O, O, CMAbv, CMBlw, CMBlw, O, O, O, O, H,
|
/* 10A30 */ B, B, B, B, O, O, O, O, CMAbv, CMBlw, CMBlw, O, O, O, O, H,
|
||||||
/* 10A40 */ B, B, B, B, B, B, B, B,
|
/* 10A40 */ B, B, B, B, B, B, B, B,
|
||||||
|
|
||||||
#define use_offset_0x11000u 3488
|
#define use_offset_0x11000u 3520
|
||||||
|
|
||||||
|
|
||||||
/* Brahmi */
|
/* Brahmi */
|
||||||
|
@ -470,7 +478,7 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = {
|
||||||
/* 110A0 */ B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B,
|
/* 110A0 */ B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B,
|
||||||
/* 110B0 */ VPst, VPre, VPst, VBlw, VBlw, VAbv, VAbv, VPst, VPst, H, CMBlw, O, O, O, O, O,
|
/* 110B0 */ VPst, VPre, VPst, VBlw, VBlw, VAbv, VAbv, VPst, VPst, H, CMBlw, O, O, O, O, O,
|
||||||
|
|
||||||
#define use_offset_0x11100u 3680
|
#define use_offset_0x11100u 3712
|
||||||
|
|
||||||
|
|
||||||
/* Chakma */
|
/* Chakma */
|
||||||
|
@ -508,7 +516,7 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = {
|
||||||
/* 11220 */ B, B, B, B, B, B, B, B, B, B, B, B, VPst, VPst, VPst, VBlw,
|
/* 11220 */ B, B, B, B, B, B, B, B, B, B, B, B, VPst, VPst, VPst, VBlw,
|
||||||
/* 11230 */ VAbv, VAbv, VAbv, VAbv, VMAbv, H, CMAbv, CMAbv,
|
/* 11230 */ VAbv, VAbv, VAbv, VAbv, VMAbv, H, CMAbv, CMAbv,
|
||||||
|
|
||||||
#define use_offset_0x11280u 3992
|
#define use_offset_0x11280u 4024
|
||||||
|
|
||||||
|
|
||||||
/* Multani */
|
/* Multani */
|
||||||
|
@ -536,7 +544,7 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = {
|
||||||
/* 11360 */ IV, IV, VPst, VPst, O, O, VMAbv, VMAbv, VMAbv, VMAbv, VMAbv, VMAbv, VMAbv, O, O, O,
|
/* 11360 */ IV, IV, VPst, VPst, O, O, VMAbv, VMAbv, VMAbv, VMAbv, VMAbv, VMAbv, VMAbv, O, O, O,
|
||||||
/* 11370 */ VMAbv, VMAbv, VMAbv, VMAbv, VMAbv, O, O, O,
|
/* 11370 */ VMAbv, VMAbv, VMAbv, VMAbv, VMAbv, O, O, O,
|
||||||
|
|
||||||
#define use_offset_0x11480u 4240
|
#define use_offset_0x11480u 4272
|
||||||
|
|
||||||
|
|
||||||
/* Tirhuta */
|
/* Tirhuta */
|
||||||
|
@ -548,7 +556,7 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = {
|
||||||
/* 114C0 */ VMAbv, VMPst, H, CMBlw, B, O, O, O, O, O, O, O, O, O, O, O,
|
/* 114C0 */ VMAbv, VMPst, H, CMBlw, B, O, O, O, O, O, O, O, O, O, O, O,
|
||||||
/* 114D0 */ B, B, B, B, B, B, B, B, B, B, O, O, O, O, O, O,
|
/* 114D0 */ B, B, B, B, B, B, B, B, B, B, O, O, O, O, O, O,
|
||||||
|
|
||||||
#define use_offset_0x11580u 4336
|
#define use_offset_0x11580u 4368
|
||||||
|
|
||||||
|
|
||||||
/* Siddham */
|
/* Siddham */
|
||||||
|
@ -591,7 +599,7 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = {
|
||||||
/* 11720 */ VPst, VPst, VAbv, VAbv, VBlw, VBlw, VPre, VAbv, VBlw, VAbv, VAbv, VAbv, O, O, O, O,
|
/* 11720 */ VPst, VPst, VAbv, VAbv, VBlw, VBlw, VPre, VAbv, VBlw, VAbv, VAbv, VAbv, O, O, O, O,
|
||||||
/* 11730 */ B, B, B, B, B, B, B, B, B, B, B, B, O, O, O, O,
|
/* 11730 */ B, B, B, B, B, B, B, B, B, B, B, B, O, O, O, O,
|
||||||
|
|
||||||
}; /* Table items: 4784; occupancy: 72% */
|
}; /* Table items: 4816; occupancy: 72% */
|
||||||
|
|
||||||
USE_TABLE_ELEMENT_TYPE
|
USE_TABLE_ELEMENT_TYPE
|
||||||
hb_use_get_categories (hb_codepoint_t u)
|
hb_use_get_categories (hb_codepoint_t u)
|
||||||
|
@ -615,7 +623,7 @@ hb_use_get_categories (hb_codepoint_t u)
|
||||||
|
|
||||||
case 0x2u:
|
case 0x2u:
|
||||||
if (hb_in_range (u, 0x2008u, 0x2017u)) return use_table[u - 0x2008u + use_offset_0x2008u];
|
if (hb_in_range (u, 0x2008u, 0x2017u)) return use_table[u - 0x2008u + use_offset_0x2008u];
|
||||||
if (hb_in_range (u, 0x2070u, 0x2087u)) return use_table[u - 0x2070u + use_offset_0x2070u];
|
if (hb_in_range (u, 0x2060u, 0x2087u)) return use_table[u - 0x2060u + use_offset_0x2060u];
|
||||||
if (unlikely (u == 0x25CCu)) return GB;
|
if (unlikely (u == 0x25CCu)) return GB;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -624,6 +632,10 @@ hb_use_get_categories (hb_codepoint_t u)
|
||||||
if (hb_in_range (u, 0xABC0u, 0xABFFu)) return use_table[u - 0xABC0u + use_offset_0xabc0u];
|
if (hb_in_range (u, 0xABC0u, 0xABFFu)) return use_table[u - 0xABC0u + use_offset_0xabc0u];
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 0xFu:
|
||||||
|
if (hb_in_range (u, 0xFE00u, 0xFE0Fu)) return use_table[u - 0xFE00u + use_offset_0xfe00u];
|
||||||
|
break;
|
||||||
|
|
||||||
case 0x10u:
|
case 0x10u:
|
||||||
if (hb_in_range (u, 0x10A00u, 0x10A47u)) return use_table[u - 0x10A00u + use_offset_0x10a00u];
|
if (hb_in_range (u, 0x10A00u, 0x10A47u)) return use_table[u - 0x10A00u + use_offset_0x10a00u];
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue