Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Harfbuzz
提交
11f1f413
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
11f1f413
编写于
6月 06, 2018
作者:
B
Behdad Esfahbod
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[set] Add is_subset
New API: +hb_set_is_subset()
上级
45186b9b
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
46 addition
and
8 deletion
+46
-8
src/hb-set-private.hh
src/hb-set-private.hh
+13
-0
src/hb-set.cc
src/hb-set.cc
+20
-2
src/hb-set.h
src/hb-set.h
+4
-0
test/api/test-set.c
test/api/test-set.c
+4
-0
test/api/test-subset-glyf.c
test/api/test-subset-glyf.c
+5
-6
未找到文件。
src/hb-set-private.hh
浏览文件 @
11f1f413
...
...
@@ -400,6 +400,19 @@ struct hb_set_t
return
true
;
}
inline
bool
is_subset
(
const
hb_set_t
*
larger_set
)
const
{
if
(
get_population
()
>
larger_set
->
get_population
())
return
false
;
hb_codepoint_t
c
=
INVALID
;
while
(
next
(
&
c
))
if
(
!
larger_set
->
has
(
c
))
return
false
;
return
true
;
}
template
<
class
Op
>
inline
void
process
(
const
hb_set_t
*
other
)
{
...
...
src/hb-set.cc
浏览文件 @
11f1f413
...
...
@@ -267,11 +267,11 @@ hb_set_del_range (hb_set_t *set,
/**
* hb_set_is_equal:
* @set: a set.
* @other:
* @other:
other set.
*
*
*
* Return value:
* Return value:
%TRUE if the two sets are equal, %FALSE otherwise.
*
* Since: 0.9.7
**/
...
...
@@ -282,6 +282,24 @@ hb_set_is_equal (const hb_set_t *set,
return
set
->
is_equal
(
other
);
}
/**
* hb_set_is_subset:
* @set: a set.
* @larger_set: other set.
*
*
*
* Return value: %TRUE if the @set is a subset of (or equal to) @larger_set, %FALSE otherwise.
*
* Since: 1.8.1
**/
hb_bool_t
hb_set_is_subset
(
const
hb_set_t
*
set
,
const
hb_set_t
*
larger_set
)
{
return
set
->
is_subset
(
larger_set
);
}
/**
* hb_set_set:
* @set: a set.
...
...
src/hb-set.h
浏览文件 @
11f1f413
...
...
@@ -104,6 +104,10 @@ HB_EXTERN hb_bool_t
hb_set_is_equal
(
const
hb_set_t
*
set
,
const
hb_set_t
*
other
);
HB_EXTERN
hb_bool_t
hb_set_is_subset
(
const
hb_set_t
*
set
,
const
hb_set_t
*
larger_set
);
HB_EXTERN
void
hb_set_set
(
hb_set_t
*
set
,
const
hb_set_t
*
other
);
...
...
test/api/test-set.c
浏览文件 @
11f1f413
...
...
@@ -146,8 +146,12 @@ test_set_algebra (void)
test_empty
(
s
);
g_assert
(
!
hb_set_is_equal
(
s
,
o
));
g_assert
(
hb_set_is_subset
(
s
,
o
));
g_assert
(
!
hb_set_is_subset
(
o
,
s
));
hb_set_set
(
s
,
o
);
g_assert
(
hb_set_is_equal
(
s
,
o
));
g_assert
(
hb_set_is_subset
(
s
,
o
));
g_assert
(
hb_set_is_subset
(
o
,
s
));
test_not_empty
(
s
);
g_assert_cmpint
(
hb_set_get_population
(
s
),
==
,
2
);
...
...
test/api/test-subset-glyf.c
浏览文件 @
11f1f413
...
...
@@ -178,12 +178,11 @@ test_subset_glyf_strip_hints_invalid (void)
hb_set_t
*
codepoints
=
hb_set_create
();
const
hb_codepoint_t
text
[]
=
{
'A'
,
'B'
,
'C'
,
'D'
,
'E'
,
'X'
,
'Y'
,
'Z'
,
'1'
,
'2'
,
'3'
,
'@'
,
'_'
,
'%'
,
'&'
,
')'
,
'*'
,
'$'
,
'!'
};
int
i
;
for
(
i
=
0
;
i
<
sizeof
(
text
)
/
sizeof
(
hb_codepoint_t
);
i
++
)
{
'A'
,
'B'
,
'C'
,
'D'
,
'E'
,
'X'
,
'Y'
,
'Z'
,
'1'
,
'2'
,
'3'
,
'@'
,
'_'
,
'%'
,
'&'
,
')'
,
'*'
,
'$'
,
'!'
};
for
(
unsigned
int
i
=
0
;
i
<
sizeof
(
text
)
/
sizeof
(
hb_codepoint_t
);
i
++
)
{
hb_set_add
(
codepoints
,
text
[
i
]);
// hb_set_add (codepoints_drop_hints, text[i]);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录