Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Harfbuzz
提交
b4eff383
T
Third Party Harfbuzz
项目概览
OpenHarmony
/
Third Party Harfbuzz
1 年多 前同步成功
通知
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看板
提交
b4eff383
编写于
5月 14, 2019
作者:
B
Behdad Esfahbod
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Start of gen-ucd.py, to replace UCDN
上级
02e5e5d9
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
46 addition
and
0 deletion
+46
-0
src/gen-ucd.py
src/gen-ucd.py
+46
-0
未找到文件。
src/gen-ucd.py
0 → 100755
浏览文件 @
b4eff383
#!/usr/bin/env python
from
__future__
import
print_function
,
division
,
absolute_import
import
io
,
os
.
path
,
sys
if
len
(
sys
.
argv
)
!=
2
:
print
(
"usage: ./gen-ucd ucdxml-file"
,
file
=
sys
.
stderr
)
sys
.
exit
(
1
)
import
youseedy
,
packTab
ucd
=
youseedy
.
load_ucdxml
(
sys
.
argv
[
1
])
gc
=
[
u
[
'gc'
]
for
u
in
ucd
]
ccc
=
[
int
(
u
[
'ccc'
])
for
u
in
ucd
]
sc
=
[
u
[
'sc'
]
for
u
in
ucd
]
bmg
=
[
int
(
v
,
16
)
-
int
(
u
)
if
v
else
0
for
u
,
v
in
enumerate
(
u
[
'bmg'
]
for
u
in
ucd
)]
dm
=
{
i
:
tuple
(
int
(
v
,
16
)
for
v
in
u
[
'dm'
].
split
())
for
i
,
u
in
enumerate
(
ucd
)
if
u
[
'dm'
]
!=
'#'
and
u
[
'dt'
]
==
'can'
and
not
(
0xAC00
<=
i
<
0xAC00
+
11172
)}
gc_set
=
set
(
gc
)
gc_ccc_non0
=
set
((
cat
,
klass
)
for
cat
,
klass
in
zip
(
gc
,
ccc
)
if
klass
)
gc_bmg_non0
=
set
((
cat
,
mirr
)
for
cat
,
mirr
in
zip
(
gc
,
bmg
)
if
mirr
)
sc_set
=
set
(
sc
)
dm2
=
set
(
v
for
v
in
dm
.
values
()
if
len
(
v
)
==
2
)
dm2diff
=
set
(
v
[
1
]
-
v
[
0
]
for
v
in
dm2
)
dm1
=
set
(
v
[
0
]
for
i
,
v
in
dm
.
items
()
if
len
(
v
)
==
1
)
dmx
=
set
(
v
for
v
in
dm
.
values
()
if
len
(
v
)
not
in
(
1
,
2
))
assert
not
dmx
print
(
len
(
sorted
(
gc_set
)))
print
(
len
(
sorted
(
gc_ccc_non0
)))
print
(
len
(
sorted
(
gc_bmg_non0
)))
print
(
"GC, CCC, and BMG fit in one byte. Compress together."
)
print
()
print
(
len
(
sorted
(
sc_set
)))
print
(
"SC fits in one byte. Compress separately."
)
print
()
print
(
len
(
dm
))
print
(
len
(
dm1
),
min
(
dm1
),
max
(
dm1
))
print
(
len
(
dm2
))
#print(sorted(dm2diff))
print
(
len
(
sorted
(
set
(
v
//
512
for
v
in
dm1
))))
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录