Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Harfbuzz
提交
ea535a1d
T
Third Party Harfbuzz
项目概览
OpenHarmony
/
Third Party Harfbuzz
11 个月 前同步成功
通知
0
Star
18
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
Third Party Harfbuzz
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
ea535a1d
编写于
10月 02, 2017
作者:
B
Behdad Esfahbod
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[use] Update to Unicode 10
上级
29c244af
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
54 addition
and
20 deletion
+54
-20
src/gen-use-table.py
src/gen-use-table.py
+3
-2
src/hb-ot-shape-complex-use-table.cc
src/hb-ot-shape-complex-use-table.cc
+51
-18
未找到文件。
src/gen-use-table.py
浏览文件 @
ea535a1d
...
...
@@ -117,6 +117,7 @@ property_names = [
'Top_And_Right'
,
'Top_And_Left'
,
'Top_And_Left_And_Right'
,
'Bottom_And_Left'
,
'Bottom_And_Right'
,
'Top_And_Bottom_And_Right'
,
'Overstruck'
,
...
...
@@ -153,7 +154,7 @@ def is_BASE(U, UISC, UGC):
def
is_BASE_IND
(
U
,
UISC
,
UGC
):
#SPEC-DRAFT return (UISC in [Consonant_Dead, Modifying_Letter] or UGC == Po)
return
(
UISC
in
[
Consonant_Dead
,
Modifying_Letter
]
or
(
UGC
==
Po
and
not
U
in
[
0x104E
,
0x2022
])
or
(
UGC
==
Po
and
not
U
in
[
0x104E
,
0x2022
,
0x11A3F
,
0x11A45
])
or
False
# SPEC-DRAFT-OUTDATED! U == 0x002D
)
def
is_BASE_NUM
(
U
,
UISC
,
UGC
):
...
...
@@ -252,7 +253,7 @@ use_positions = {
},
'M'
:
{
'Abv'
:
[
Top
],
'Blw'
:
[
Bottom
],
'Blw'
:
[
Bottom
,
Bottom_And_Left
],
'Pst'
:
[
Right
],
'Pre'
:
[
Left
],
},
...
...
src/hb-ot-shape-complex-use-table.cc
浏览文件 @
ea535a1d
...
...
@@ -6,12 +6,12 @@
*
* on files with these headers:
*
* # IndicSyllabicCategory-
9
.0.0.txt
* # Date: 201
6-05-21, 02:46:00 GMT [
RP]
* # IndicPositionalCategory-
9
.0.0.txt
* # Date: 201
6-06-09, 19:33
:00 GMT [RP]
* # Blocks-
9
.0.0.txt
* # Date: 201
6-02-05, 23:48
:00 GMT [KW]
* # IndicSyllabicCategory-
10
.0.0.txt
* # Date: 201
7-05-31, 01:07:00 GMT [KW,
RP]
* # IndicPositionalCategory-
10
.0.0.txt
* # Date: 201
7-05-31, 01:07
:00 GMT [RP]
* # Blocks-
10
.0.0.txt
* # Date: 201
7-04-12, 17:30
:00 GMT [KW]
* UnicodeData.txt does not have a header.
*/
...
...
@@ -97,7 +97,7 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = {
/* 09C0 */
VPst
,
VBlw
,
VBlw
,
VBlw
,
VBlw
,
O
,
O
,
VPre
,
VPre
,
O
,
O
,
VPre
,
VPre
,
H
,
IND
,
O
,
/* 09D0 */
O
,
O
,
O
,
O
,
O
,
O
,
O
,
VPst
,
O
,
O
,
O
,
O
,
B
,
B
,
O
,
B
,
/* 09E0 */
B
,
B
,
VBlw
,
VBlw
,
O
,
O
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
/* 09F0 */
B
,
B
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
/* 09F0 */
B
,
B
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
B
,
O
,
O
,
O
,
/* Gurmukhi */
...
...
@@ -119,7 +119,7 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = {
/* 0AC0 */
VPst
,
VBlw
,
VBlw
,
VBlw
,
VBlw
,
VAbv
,
O
,
VAbv
,
VAbv
,
VAbv
,
O
,
VPst
,
VPst
,
H
,
O
,
O
,
/* 0AD0 */
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
/* 0AE0 */
B
,
B
,
VBlw
,
VBlw
,
O
,
O
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
/* 0AF0 */
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
B
,
O
,
O
,
O
,
O
,
O
,
O
,
/* 0AF0 */
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
B
,
VMAbv
,
VMAbv
,
VMAbv
,
CMAbv
,
CMAbv
,
CMAbv
,
/* Oriya */
...
...
@@ -167,10 +167,10 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = {
/* Malayalam */
/* 0D00 */
O
,
VMAbv
,
VMPst
,
VMPst
,
O
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
O
,
B
,
B
,
/* 0D00 */
VMAbv
,
VMAbv
,
VMPst
,
VMPst
,
O
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
O
,
B
,
B
,
/* 0D10 */
B
,
O
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
/* 0D20 */
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
/* 0D30 */
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
O
,
O
,
B
,
VPst
,
VPst
,
/* 0D30 */
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
VAbv
,
VAbv
,
B
,
VPst
,
VPst
,
/* 0D40 */
VPst
,
VPst
,
VPst
,
VBlw
,
VBlw
,
O
,
VPre
,
VPre
,
VPre
,
O
,
VPre
,
VPre
,
VPre
,
H
,
R
,
O
,
/* 0D50 */
O
,
O
,
O
,
O
,
IND
,
IND
,
IND
,
VPst
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
B
,
/* 0D60 */
B
,
B
,
VBlw
,
VBlw
,
O
,
O
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
...
...
@@ -274,9 +274,9 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = {
/* 1A20 */
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
/* 1A30 */
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
/* 1A40 */
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
/* 1A50 */
B
,
B
,
B
,
B
,
B
,
MPre
,
MBlw
,
FPst
,
FAbv
,
FAbv
,
FAbv
,
FBlw
,
FBlw
,
FBlw
,
FBlw
,
O
,
/* 1A50 */
B
,
B
,
B
,
B
,
B
,
MPre
,
MBlw
,
SUB
,
FAbv
,
FAbv
,
FAbv
,
SUB
,
SUB
,
SUB
,
SUB
,
O
,
/* 1A60 */
H
,
VPst
,
VAbv
,
VPst
,
VPst
,
VAbv
,
VAbv
,
VAbv
,
VAbv
,
VBlw
,
VBlw
,
VAbv
,
VBlw
,
VPst
,
VPre
,
VPre
,
/* 1A70 */
VPre
,
VPre
,
VPre
,
VAbv
,
VAbv
,
VMAbv
,
VMAbv
,
VMAbv
,
VMAbv
,
VMAbv
,
FM
,
FM
,
FM
,
O
,
O
,
FM
,
/* 1A70 */
VPre
,
VPre
,
VPre
,
VAbv
,
VMAbv
,
VMAbv
,
VMAbv
,
VMAbv
,
VMAbv
,
VMAbv
,
VAbv
,
FM
,
FM
,
O
,
O
,
FM
,
/* 1A80 */
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
O
,
O
,
O
,
O
,
O
,
O
,
/* 1A90 */
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
O
,
O
,
O
,
O
,
O
,
O
,
...
...
@@ -323,7 +323,7 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = {
/* 1CD0 */
VMAbv
,
VMAbv
,
VMAbv
,
O
,
VMBlw
,
VMBlw
,
VMBlw
,
VMBlw
,
VMBlw
,
VMBlw
,
VMAbv
,
VMAbv
,
VMBlw
,
VMBlw
,
VMBlw
,
VMBlw
,
/* 1CE0 */
VMAbv
,
VMPst
,
VMBlw
,
VMBlw
,
VMBlw
,
VMBlw
,
VMBlw
,
VMBlw
,
VMBlw
,
O
,
O
,
O
,
O
,
VMBlw
,
O
,
O
,
/* 1CF0 */
O
,
O
,
VMPst
,
VMPst
,
VMAbv
,
O
,
O
,
O
,
VMAbv
,
VMAbv
,
O
,
O
,
O
,
O
,
O
,
O
,
/* 1CF0 */
O
,
O
,
VMPst
,
VMPst
,
VMAbv
,
O
,
O
,
VMPst
,
VMAbv
,
VMAbv
,
O
,
O
,
O
,
O
,
O
,
O
,
#define use_offset_0x1df8u 2552
...
...
@@ -376,7 +376,7 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = {
/* Devanagari Extended */
/* A8E0 */
VMAbv
,
VMAbv
,
VMAbv
,
VMAbv
,
VMAbv
,
VMAbv
,
VMAbv
,
VMAbv
,
VMAbv
,
VMAbv
,
VMAbv
,
VMAbv
,
VMAbv
,
VMAbv
,
VMAbv
,
VMAbv
,
/* A8F0 */
VMAbv
,
VMAbv
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
/* A8F0 */
VMAbv
,
VMAbv
,
B
,
B
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
/* Kayah Li */
...
...
@@ -397,7 +397,7 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = {
/* A980 */
VMAbv
,
VMAbv
,
FAbv
,
VMPst
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
/* A990 */
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
/* A9A0 */
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
/* A9B0 */
B
,
B
,
B
,
CMAbv
,
VPst
,
VPst
,
VAbv
,
VAbv
,
VBlw
,
VBlw
,
VPre
,
VPre
,
VAbv
,
SUB
,
MPst
,
M
Pst
,
/* A9B0 */
B
,
B
,
B
,
CMAbv
,
VPst
,
VPst
,
VAbv
,
VAbv
,
VBlw
,
VBlw
,
VPre
,
VPre
,
VAbv
,
SUB
,
MPst
,
M
Blw
,
/* A9C0 */
H
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
/* A9D0 */
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
O
,
O
,
O
,
O
,
O
,
O
,
...
...
@@ -545,7 +545,7 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = {
/* 11320 */
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
O
,
B
,
B
,
B
,
B
,
B
,
B
,
/* 11330 */
B
,
O
,
B
,
B
,
O
,
B
,
B
,
B
,
B
,
B
,
O
,
O
,
CMBlw
,
B
,
VPst
,
VPst
,
/* 11340 */
VAbv
,
VPst
,
VPst
,
VPst
,
VPst
,
O
,
O
,
VPre
,
VPre
,
O
,
O
,
VPre
,
VPre
,
H
,
O
,
O
,
/* 11350 */
O
,
O
,
O
,
O
,
O
,
O
,
O
,
VPst
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
/* 11350 */
O
,
O
,
O
,
O
,
O
,
O
,
O
,
VPst
,
O
,
O
,
O
,
O
,
O
,
O
,
B
,
B
,
/* 11360 */
B
,
B
,
VPst
,
VPst
,
O
,
O
,
VMAbv
,
VMAbv
,
VMAbv
,
VMAbv
,
VMAbv
,
VMAbv
,
VMAbv
,
O
,
O
,
O
,
/* 11370 */
VMAbv
,
VMAbv
,
VMAbv
,
VMAbv
,
VMAbv
,
O
,
O
,
O
,
...
...
@@ -615,7 +615,26 @@ 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
,
/* 11730 */
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
O
,
O
,
O
,
O
,
#define use_offset_0x11c00u 4960
#define use_offset_0x11a00u 4960
/* Zanabazar Square */
/* 11A00 */
B
,
VAbv
,
VBlw
,
VBlw
,
VAbv
,
VAbv
,
VAbv
,
VAbv
,
VAbv
,
VAbv
,
VBlw
,
B
,
B
,
B
,
B
,
B
,
/* 11A10 */
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
/* 11A20 */
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
/* 11A30 */
B
,
B
,
B
,
FM
,
VBlw
,
VMAbv
,
VMAbv
,
VMAbv
,
VMAbv
,
VMPst
,
R
,
MBlw
,
MBlw
,
MBlw
,
MBlw
,
GB
,
/* 11A40 */
O
,
O
,
O
,
O
,
O
,
GB
,
O
,
H
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
/* Soyombo */
/* 11A50 */
B
,
VAbv
,
VBlw
,
VBlw
,
VAbv
,
VAbv
,
VAbv
,
VPst
,
VPst
,
VBlw
,
VBlw
,
VBlw
,
B
,
B
,
B
,
B
,
/* 11A60 */
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
/* 11A70 */
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
/* 11A80 */
B
,
B
,
B
,
B
,
O
,
O
,
R
,
R
,
R
,
R
,
FBlw
,
FBlw
,
FBlw
,
FBlw
,
FBlw
,
FBlw
,
/* 11A90 */
FBlw
,
FBlw
,
FBlw
,
FBlw
,
FBlw
,
FBlw
,
VMAbv
,
VMPst
,
CMAbv
,
H
,
O
,
O
,
O
,
O
,
O
,
O
,
#define use_offset_0x11c00u 5120
/* Bhaiksuki */
...
...
@@ -636,7 +655,19 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = {
/* 11CA0 */
SUB
,
SUB
,
SUB
,
SUB
,
SUB
,
SUB
,
SUB
,
SUB
,
O
,
SUB
,
SUB
,
SUB
,
SUB
,
SUB
,
SUB
,
SUB
,
/* 11CB0 */
VBlw
,
VPre
,
VBlw
,
VAbv
,
VPst
,
VMAbv
,
VMAbv
,
O
,
};
/* Table items: 5144; occupancy: 72% */
#define use_offset_0x11d00u 5304
/* Masaram Gondi */
/* 11D00 */
B
,
B
,
B
,
B
,
B
,
B
,
B
,
O
,
B
,
B
,
O
,
B
,
B
,
B
,
B
,
B
,
/* 11D10 */
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
/* 11D20 */
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
/* 11D30 */
B
,
VAbv
,
VAbv
,
VAbv
,
VAbv
,
VAbv
,
VBlw
,
O
,
O
,
O
,
VAbv
,
O
,
VAbv
,
VAbv
,
O
,
VAbv
,
/* 11D40 */
VMAbv
,
VMAbv
,
CMBlw
,
VAbv
,
VBlw
,
H
,
R
,
MBlw
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
O
,
/* 11D50 */
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
B
,
O
,
O
,
O
,
O
,
O
,
O
,
};
/* Table items: 5400; occupancy: 73% */
USE_TABLE_ELEMENT_TYPE
hb_use_get_categories
(
hb_codepoint_t
u
)
...
...
@@ -684,7 +715,9 @@ hb_use_get_categories (hb_codepoint_t u)
if
(
hb_in_range
<
hb_codepoint_t
>
(
u
,
0x11280u
,
0x11377u
))
return
use_table
[
u
-
0x11280u
+
use_offset_0x11280u
];
if
(
hb_in_range
<
hb_codepoint_t
>
(
u
,
0x11400u
,
0x114DFu
))
return
use_table
[
u
-
0x11400u
+
use_offset_0x11400u
];
if
(
hb_in_range
<
hb_codepoint_t
>
(
u
,
0x11580u
,
0x1173Fu
))
return
use_table
[
u
-
0x11580u
+
use_offset_0x11580u
];
if
(
hb_in_range
<
hb_codepoint_t
>
(
u
,
0x11A00u
,
0x11A9Fu
))
return
use_table
[
u
-
0x11A00u
+
use_offset_0x11a00u
];
if
(
hb_in_range
<
hb_codepoint_t
>
(
u
,
0x11C00u
,
0x11CB7u
))
return
use_table
[
u
-
0x11C00u
+
use_offset_0x11c00u
];
if
(
hb_in_range
<
hb_codepoint_t
>
(
u
,
0x11D00u
,
0x11D5Fu
))
return
use_table
[
u
-
0x11D00u
+
use_offset_0x11d00u
];
if
(
unlikely
(
u
==
0x1107Fu
))
return
HN
;
break
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录