Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Harfbuzz
提交
7ea10c35
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看板
提交
7ea10c35
编写于
8月 15, 2017
作者:
B
Behdad Esfahbod
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[util] Respect eot/bot in safe-to-break test; hook up hb_buffer_diff()
上级
8820ba29
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
26 addition
and
12 deletion
+26
-12
util/options.hh
util/options.hh
+26
-12
未找到文件。
util/options.hh
浏览文件 @
7ea10c35
...
...
@@ -376,9 +376,20 @@ struct shape_options_t : option_group_t
}
assert
(
text_start
<
text_end
);
//printf("start %d end %d text start %d end %d\n", start, end, text_start, text_end);
if
(
0
)
printf
(
"start %d end %d text start %d end %d
\n
"
,
start
,
end
,
text_start
,
text_end
);
hb_buffer_clear_contents
(
fragment
);
copy_buffer_properties
(
fragment
,
buffer
);
/* TODO: Add pre/post context text. */
hb_buffer_flags_t
flags
=
hb_buffer_get_flags
(
fragment
);
if
(
0
<
text_start
)
flags
=
(
hb_buffer_flags_t
)
(
flags
&
~
HB_BUFFER_FLAG_BOT
);
if
(
text_end
<
num_chars
)
flags
=
(
hb_buffer_flags_t
)
(
flags
&
~
HB_BUFFER_FLAG_EOT
);
hb_buffer_set_flags
(
fragment
,
flags
);
hb_buffer_append
(
fragment
,
text_buffer
,
text_start
,
text_end
);
if
(
!
hb_shape_full
(
font
,
fragment
,
features
,
num_features
,
shapers
))
{
...
...
@@ -397,22 +408,25 @@ struct shape_options_t : option_group_t
text_end
=
text_start
;
}
hb_glyph_position_t
*
pos
=
hb_buffer_get_glyph_positions
(
buffer
,
NULL
);
unsigned
int
r_num_glyphs
;
hb_glyph_info_t
*
r_info
=
hb_buffer_get_glyph_infos
(
reconstruction
,
&
r_num_glyphs
);
hb_glyph_position_t
*
r_pos
=
hb_buffer_get_glyph_positions
(
reconstruction
,
NULL
);
/* TODO Compare buffers. Remove assert. */
assert
(
num_glyphs
==
r_num_glyphs
);
bool
ret
=
true
;
hb_buffer_diff_flags_t
diff
=
hb_buffer_diff
(
buffer
,
reconstruction
,
0
,
0
);
if
(
diff
)
{
if
(
error
)
*
error
=
"Safe-to-break test failed."
;
ret
=
false
;
//hb_buffer_set_length (buffer, 0);
//hb_buffer_append (buffer, reconstruction, 0, -1);
if
(
0
)
{
hb_buffer_set_length
(
buffer
,
0
);
hb_buffer_append
(
buffer
,
reconstruction
,
0
,
-
1
);
}
}
hb_buffer_destroy
(
reconstruction
);
hb_buffer_destroy
(
fragment
);
return
true
;
return
ret
;
}
void
shape_closure
(
const
char
*
text
,
int
text_len
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录