Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Harfbuzz
提交
efed40b9
T
Third Party Harfbuzz
项目概览
OpenHarmony
/
Third Party Harfbuzz
接近 2 年 前同步成功
通知
1
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看板
提交
efed40b9
编写于
10月 17, 2013
作者:
B
Behdad Esfahbod
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[indic] Minor refactoring of reph handling
上级
684fe59f
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
9 addition
and
7 deletion
+9
-7
src/hb-ot-shape-complex-indic.cc
src/hb-ot-shape-complex-indic.cc
+8
-6
src/hb-ot-shape-complex-sea.cc
src/hb-ot-shape-complex-sea.cc
+1
-1
未找到文件。
src/hb-ot-shape-complex-indic.cc
浏览文件 @
efed40b9
...
...
@@ -273,8 +273,7 @@ enum base_position_t {
BASE_POS_LAST
};
enum
reph_position_t
{
REPH_POS_DEFAULT
=
POS_BEFORE_POST
,
REPH_POS_DONT_CARE
=
POS_RA_TO_BECOME_REPH
,
REPH_POS_AFTER_MAIN
=
POS_AFTER_MAIN
,
REPH_POS_BEFORE_SUB
=
POS_BEFORE_SUB
,
REPH_POS_AFTER_SUB
=
POS_AFTER_SUB
,
...
...
@@ -305,7 +304,7 @@ struct indic_config_t
static
const
indic_config_t
indic_configs
[]
=
{
/* Default. Should be first. */
{
HB_SCRIPT_INVALID
,
false
,
0
,
BASE_POS_LAST
,
REPH_POS_
DEFAULT
,
REPH_MODE_IMPLICIT
,
BLWF_MODE_PRE_AND_POST
},
{
HB_SCRIPT_INVALID
,
false
,
0
,
BASE_POS_LAST
,
REPH_POS_
BEFORE_POST
,
REPH_MODE_IMPLICIT
,
BLWF_MODE_PRE_AND_POST
},
{
HB_SCRIPT_DEVANAGARI
,
true
,
0x094D
,
BASE_POS_LAST
,
REPH_POS_BEFORE_POST
,
REPH_MODE_IMPLICIT
,
BLWF_MODE_PRE_AND_POST
},
{
HB_SCRIPT_BENGALI
,
true
,
0x09CD
,
BASE_POS_LAST
,
REPH_POS_AFTER_SUB
,
REPH_MODE_IMPLICIT
,
BLWF_MODE_PRE_AND_POST
},
{
HB_SCRIPT_GURMUKHI
,
true
,
0x0A4D
,
BASE_POS_LAST
,
REPH_POS_BEFORE_SUB
,
REPH_MODE_IMPLICIT
,
BLWF_MODE_PRE_AND_POST
},
...
...
@@ -317,8 +316,8 @@ static const indic_config_t indic_configs[] =
{
HB_SCRIPT_MALAYALAM
,
true
,
0x0D4D
,
BASE_POS_LAST
,
REPH_POS_AFTER_MAIN
,
REPH_MODE_LOG_REPHA
,
BLWF_MODE_PRE_AND_POST
},
{
HB_SCRIPT_SINHALA
,
false
,
0x0DCA
,
BASE_POS_LAST_SINHALA
,
REPH_POS_AFTER_MAIN
,
REPH_MODE_EXPLICIT
,
BLWF_MODE_PRE_AND_POST
},
{
HB_SCRIPT_KHMER
,
false
,
0x17D2
,
BASE_POS_FIRST
,
REPH_POS_D
EFAULT
,
REPH_MODE_VIS_REPHA
,
BLWF_MODE_PRE_AND_POST
},
{
HB_SCRIPT_JAVANESE
,
false
,
0xA9C0
,
BASE_POS_LAST
,
REPH_POS_D
EFAULT
,
REPH_MODE_IMPLICIT
,
BLWF_MODE_PRE_AND_POST
},
{
HB_SCRIPT_KHMER
,
false
,
0x17D2
,
BASE_POS_FIRST
,
REPH_POS_D
ONT_CARE
,
REPH_MODE_VIS_REPHA
,
BLWF_MODE_PRE_AND_POST
},
{
HB_SCRIPT_JAVANESE
,
false
,
0xA9C0
,
BASE_POS_LAST
,
REPH_POS_D
ONT_CARE
,
REPH_MODE_VIS_REPHA
,
BLWF_MODE_PRE_AND_POST
},
};
...
...
@@ -702,7 +701,8 @@ initial_reordering_consonant_syllable (const hb_ot_shape_plan_t *plan,
* and has more than one consonant, Ra is excluded from candidates for
* base consonants. */
unsigned
int
limit
=
start
;
if
(
indic_plan
->
mask_array
[
RPHF
]
&&
if
(
indic_plan
->
config
->
reph_pos
!=
POS_RA_TO_BECOME_REPH
&&
indic_plan
->
mask_array
[
RPHF
]
&&
start
+
3
<=
end
&&
(
(
indic_plan
->
config
->
reph_mode
==
REPH_MODE_IMPLICIT
&&
!
is_joiner
(
info
[
start
+
2
]))
||
...
...
@@ -816,6 +816,7 @@ initial_reordering_consonant_syllable (const hb_ot_shape_plan_t *plan,
/* The first consonant is always the base. */
assert
(
indic_plan
->
config
->
reph_mode
==
REPH_MODE_VIS_REPHA
);
assert
(
!
has_reph
);
base
=
start
;
...
...
@@ -1394,6 +1395,7 @@ final_reordering_syllable (const hb_ot_shape_plan_t *plan,
unsigned
int
new_reph_pos
;
reph_position_t
reph_pos
=
indic_plan
->
config
->
reph_pos
;
assert
(
reph_pos
!=
POS_RA_TO_BECOME_REPH
);
/* 1. If reph should be positioned after post-base consonant forms,
* proceed to step 5.
...
...
src/hb-ot-shape-complex-sea.cc
浏览文件 @
efed40b9
...
...
@@ -266,7 +266,7 @@ initial_reordering_syllable (const hb_ot_shape_plan_t *plan,
switch
(
syllable_type
)
{
case
consonant_syllable
:
initial_reordering_consonant_syllable
(
plan
,
face
,
buffer
,
start
,
end
);
return
;
case
broken_cluster
:
initial_reordering_broken_cluster
(
plan
,
face
,
buffer
,
start
,
end
);
return
;
case
non_sea_cluster
:
initial_reordering_non_sea_cluster
(
plan
,
face
,
buffer
,
start
,
end
);
return
;
case
non_sea_cluster
:
initial_reordering_non_sea_cluster
(
plan
,
face
,
buffer
,
start
,
end
);
return
;
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录