Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party CJSON
提交
2616db9e
T
Third Party CJSON
项目概览
OpenHarmony
/
Third Party CJSON
大约 1 年 前同步成功
通知
6
Star
22
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
Third Party CJSON
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
2616db9e
编写于
4月 30, 2017
作者:
M
Max Bruckner
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add compare_strings: configurable case_sensitivity
上级
23cbb173
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
14 addition
and
9 deletion
+14
-9
cJSON_Utils.c
cJSON_Utils.c
+14
-9
未找到文件。
cJSON_Utils.c
浏览文件 @
2616db9e
...
...
@@ -50,8 +50,8 @@ static unsigned char* cJSONUtils_strdup(const unsigned char* const string)
return
copy
;
}
/*
Case insensitive string comparison, doesn't consider two NULL pointers equal though
*/
static
int
c
ase_insensitive_strcmp
(
const
unsigned
char
*
string1
,
const
unsigned
char
*
string2
)
/*
string comparison which doesn't consider NULL pointers equal
*/
static
int
c
ompare_strings
(
const
unsigned
char
*
string1
,
const
unsigned
char
*
string2
,
const
cJSON_bool
case_sensitive
)
{
if
((
string1
==
NULL
)
||
(
string2
==
NULL
))
{
...
...
@@ -63,6 +63,11 @@ static int case_insensitive_strcmp(const unsigned char *string1, const unsigned
return
0
;
}
if
(
case_sensitive
)
{
return
strcmp
((
const
char
*
)
string1
,
(
const
char
*
)
string2
);
}
for
(;
tolower
(
*
string1
)
==
tolower
(
*
string2
);
(
void
)
string1
++
,
string2
++
)
{
if
(
*
string1
==
'\0'
)
...
...
@@ -432,7 +437,7 @@ static cJSON_bool compare_json(cJSON *a, cJSON *b)
case
cJSON_String
:
/* string mismatch. */
if
(
strcmp
(
a
->
valuestring
,
b
->
valuestring
)
!=
0
)
if
(
compare_strings
((
unsigned
char
*
)
a
->
valuestring
,
(
unsigned
char
*
)
b
->
valuestring
,
true
)
!=
0
)
{
return
false
;
}
...
...
@@ -468,7 +473,7 @@ static cJSON_bool compare_json(cJSON *a, cJSON *b)
{
cJSON_bool
identical
=
false
;
/* compare object keys */
if
(
c
ase_insensitive_strcmp
((
unsigned
char
*
)
a
->
string
,
(
unsigned
char
*
)
b
->
string
))
if
(
c
ompare_strings
((
unsigned
char
*
)
a
->
string
,
(
unsigned
char
*
)
b
->
string
,
false
))
{
/* missing member */
return
false
;
...
...
@@ -909,7 +914,7 @@ static void create_patches(cJSON * const patches, const unsigned char * const pa
return
;
case
cJSON_String
:
if
(
strcmp
(
from
->
valuestring
,
to
->
valuestring
)
!=
0
)
if
(
compare_strings
((
unsigned
char
*
)
from
->
valuestring
,
(
unsigned
char
*
)
to
->
valuestring
,
true
)
!=
0
)
{
compose_patch
(
patches
,
(
const
unsigned
char
*
)
"replace"
,
path
,
NULL
,
to
);
}
...
...
@@ -983,7 +988,7 @@ static void create_patches(cJSON * const patches, const unsigned char * const pa
}
else
{
diff
=
c
ase_insensitive_strcmp
((
unsigned
char
*
)
from_child
->
string
,
(
unsigned
char
*
)
to_child
->
string
);
diff
=
c
ompare_strings
((
unsigned
char
*
)
from_child
->
string
,
(
unsigned
char
*
)
to_child
->
string
,
false
);
}
if
(
diff
==
0
)
...
...
@@ -1049,7 +1054,7 @@ static cJSON *sort_list(cJSON *list)
return
result
;
}
while
((
current_item
!=
NULL
)
&&
(
current_item
->
next
!=
NULL
)
&&
(
c
ase_insensitive_strcmp
((
unsigned
char
*
)
current_item
->
string
,
(
unsigned
char
*
)
current_item
->
next
->
string
)
<
0
))
while
((
current_item
!=
NULL
)
&&
(
current_item
->
next
!=
NULL
)
&&
(
c
ompare_strings
((
unsigned
char
*
)
current_item
->
string
,
(
unsigned
char
*
)
current_item
->
next
->
string
,
false
)
<
0
))
{
/* Test for list sorted. */
current_item
=
current_item
->
next
;
...
...
@@ -1088,7 +1093,7 @@ static cJSON *sort_list(cJSON *list)
while
((
first
!=
NULL
)
&&
(
second
!=
NULL
))
{
cJSON
*
smaller
=
NULL
;
if
(
c
ase_insensitive_strcmp
((
unsigned
char
*
)
first
->
string
,
(
unsigned
char
*
)
second
->
string
)
<
0
)
if
(
c
ompare_strings
((
unsigned
char
*
)
first
->
string
,
(
unsigned
char
*
)
second
->
string
,
false
)
<
0
)
{
smaller
=
first
;
}
...
...
@@ -1213,7 +1218,7 @@ CJSON_PUBLIC(cJSON *) cJSONUtils_GenerateMergePatch(cJSON * const from, cJSON *
{
if
(
to_child
!=
NULL
)
{
diff
=
strcmp
(
from_child
->
string
,
to_child
->
string
);
diff
=
compare_strings
((
unsigned
char
*
)
from_child
->
string
,
(
unsigned
char
*
)
to_child
->
string
,
true
);
}
else
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录