Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Musl
提交
f9d880d2
T
Third Party Musl
项目概览
OpenHarmony
/
Third Party Musl
接近 2 年 前同步成功
通知
37
Star
125
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
Third Party Musl
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
f9d880d2
编写于
2月 13, 2011
作者:
R
Rich Felker
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
cleanup multibyte stuff to remove ugly casts, sanitize the ptr align casts
上级
2cdfb7ca
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
27 addition
and
27 deletion
+27
-27
src/multibyte/internal.h
src/multibyte/internal.h
+4
-4
src/multibyte/mbrtowc.c
src/multibyte/mbrtowc.c
+4
-4
src/multibyte/mbsrtowcs.c
src/multibyte/mbsrtowcs.c
+19
-19
未找到文件。
src/multibyte/internal.h
浏览文件 @
f9d880d2
...
...
@@ -53,9 +53,9 @@ extern const uint32_t bittab[];
#define FAILSTATE R(0x80,0x80)
#ifdef I_FAILED_TO_RTFM_RFC3629
#define SA 0xc2
#define SB 0xfe
#define SA 0xc2
u
#define SB 0xfe
u
#else
#define SA 0xc2
#define SB 0xf5
#define SA 0xc2
u
#define SB 0xf5
u
#endif
src/multibyte/mbrtowc.c
浏览文件 @
f9d880d2
...
...
@@ -15,7 +15,7 @@ size_t mbrtowc(wchar_t *wc, const char *src, size_t n, mbstate_t *st)
{
static
unsigned
internal_state
;
unsigned
c
;
const
unsigned
char
*
s
=
src
;
const
unsigned
char
*
s
=
(
const
void
*
)
src
;
const
unsigned
N
=
n
;
if
(
!
st
)
st
=
(
void
*
)
&
internal_state
;
...
...
@@ -29,8 +29,8 @@ size_t mbrtowc(wchar_t *wc, const char *src, size_t n, mbstate_t *st)
if
(
!
n
)
return
-
2
;
if
(
!
c
)
{
if
(
(
unsigned
)
*
s
<
0x80
)
return
!!
(
*
wc
=
*
s
);
if
(
(
unsigned
)
*
s
-
SA
>
SB
-
SA
)
goto
ilseq
;
if
(
*
s
<
0x80
)
return
!!
(
*
wc
=
*
s
);
if
(
*
s
-
SA
>
SB
-
SA
)
goto
ilseq
;
c
=
bittab
[
*
s
++-
SA
];
n
--
;
}
...
...
@@ -44,7 +44,7 @@ loop:
return
N
-
n
;
}
if
(
n
)
{
if
(
(
unsigned
)
*
s
-
0x80
>=
0x40
)
goto
ilseq
;
if
(
*
s
-
0x80u
>=
0x40
)
goto
ilseq
;
goto
loop
;
}
}
...
...
src/multibyte/mbsrtowcs.c
浏览文件 @
f9d880d2
...
...
@@ -14,7 +14,7 @@
size_t
mbsrtowcs
(
wchar_t
*
ws
,
const
char
**
src
,
size_t
wn
,
mbstate_t
*
st
)
{
unsigned
c
;
const
unsigned
char
*
s
=
*
src
;
const
unsigned
char
*
s
=
(
const
void
*
)
*
src
;
const
wchar_t
*
wsorig
=
ws
;
if
(
!
st
)
st
=
(
void
*
)
&
c
,
c
=
0
;
...
...
@@ -30,12 +30,12 @@ size_t mbsrtowcs(wchar_t *ws, const char **src, size_t wn, mbstate_t *st)
}
if
(
!
ws
)
for
(
wn
=
0
;;)
{
if
(
(
unsigned
)
*
s
-
SA
>=
SB
-
SA
)
{
while
(((
u
nsigned
)
s
&
3
)
&&
(
unsigned
)
*
s
-
1
<
0x7f
)
s
++
,
wn
++
;
if
(
*
s
-
SA
>=
SB
-
SA
)
{
while
(((
u
intptr_t
)
s
&
3
)
&&
*
s
-
1u
<
0x7f
)
s
++
,
wn
++
;
while
(
!
((
*
(
uint32_t
*
)
s
|
*
(
uint32_t
*
)
s
-
0x01010101
)
&
0x80808080
))
s
+=
4
,
wn
+=
4
;
while
(
(
unsigned
)
*
s
-
1
<
0x7f
)
s
++
,
wn
++
;
while
(
*
s
-
1u
<
0x7f
)
s
++
,
wn
++
;
if
(
!*
s
)
return
wn
;
if
(
(
unsigned
)
*
s
-
SA
>=
SB
-
SA
)
goto
ilseq2
;
if
(
*
s
-
SA
>=
SB
-
SA
)
goto
ilseq2
;
}
c
=
bittab
[
*
s
++-
SA
];
do
{
...
...
@@ -43,22 +43,22 @@ resume0:
if
(
OOB
(
c
,
*
s
))
goto
ilseq2
;
s
++
;
c
<<=
6
;
if
(
!
(
c
&
(
1U
<<
31
)))
break
;
#ifdef I_FAILED_TO_RTFM_RFC3629
if
(
(
unsigned
)
*
s
++-
0x80
>=
0x40
)
goto
ilseq2
;
if
(
*
s
++-
0x80u
>=
0x40
)
goto
ilseq2
;
c
<<=
6
;
if
(
!
(
c
&
(
1U
<<
31
)))
break
;
if
(
(
unsigned
)
*
s
++-
0x80
>=
0x40
)
goto
ilseq2
;
if
(
*
s
++-
0x80u
>=
0x40
)
goto
ilseq2
;
c
<<=
6
;
if
(
!
(
c
&
(
1U
<<
31
)))
break
;
#endif
if
(
(
unsigned
)
*
s
++-
0x80
>=
0x40
)
goto
ilseq2
;
if
(
*
s
++-
0x80u
>=
0x40
)
goto
ilseq2
;
c
<<=
6
;
if
(
!
(
c
&
(
1U
<<
31
)))
break
;
if
(
(
unsigned
)
*
s
++-
0x80
>=
0x40
)
goto
ilseq2
;
if
(
*
s
++-
0x80u
>=
0x40
)
goto
ilseq2
;
}
while
(
0
);
wn
++
;
c
=
0
;
}
while
(
wn
)
{
if
(
(
unsigned
)
*
s
-
SA
>=
SB
-
SA
)
{
if
(
*
s
-
SA
>=
SB
-
SA
)
{
if
(
wn
>=
7
)
{
while
(((
u
nsigned
)
s
&
3
)
&&
(
unsigned
)
*
s
-
1
<
0x7f
)
{
while
(((
u
intptr_t
)
s
&
3
)
&&
*
s
-
1u
<
0x7f
)
{
*
ws
++
=
*
s
++
;
wn
--
;
}
...
...
@@ -70,7 +70,7 @@ resume0:
wn
-=
4
;
}
}
while
(
wn
&&
(
unsigned
)
*
s
-
1
<
0x7f
)
{
while
(
wn
&&
*
s
-
1u
<
0x7f
)
{
*
ws
++
=
*
s
++
;
wn
--
;
}
...
...
@@ -80,7 +80,7 @@ resume0:
*
src
=
0
;
return
ws
-
wsorig
;
}
if
(
(
unsigned
)
*
s
-
SA
>=
SB
-
SA
)
goto
ilseq
;
if
(
*
s
-
SA
>=
SB
-
SA
)
goto
ilseq
;
}
c
=
bittab
[
*
s
++-
SA
];
do
{
...
...
@@ -90,29 +90,29 @@ resume:
if
(
!
(
c
&
(
1U
<<
31
)))
break
;
#ifdef I_FAILED_TO_RTFM_RFC3629
if
(
(
unsigned
)
*
s
-
0x80
>=
0x40
)
goto
ilseq
;
if
(
*
s
-
0x80u
>=
0x40
)
goto
ilseq
;
c
=
(
c
<<
6
)
|
*
s
++-
0x80
;
if
(
!
(
c
&
(
1U
<<
31
)))
break
;
if
(
(
unsigned
)
*
s
-
0x80
>=
0x40
)
goto
ilseq
;
if
(
*
s
-
0x80u
>=
0x40
)
goto
ilseq
;
c
=
(
c
<<
6
)
|
*
s
++-
0x80
;
if
(
!
(
c
&
(
1U
<<
31
)))
break
;
#endif
if
(
(
unsigned
)
*
s
-
0x80
>=
0x40
)
goto
ilseq
;
if
(
*
s
-
0x80u
>=
0x40
)
goto
ilseq
;
c
=
(
c
<<
6
)
|
*
s
++-
0x80
;
if
(
!
(
c
&
(
1U
<<
31
)))
break
;
if
(
(
unsigned
)
*
s
-
0x80
>=
0x40
)
goto
ilseq
;
if
(
*
s
-
0x80u
>=
0x40
)
goto
ilseq
;
c
=
(
c
<<
6
)
|
*
s
++-
0x80
;
}
while
(
0
);
*
ws
++
=
c
;
wn
--
;
c
=
0
;
}
*
src
=
s
;
*
src
=
(
const
void
*
)
s
;
return
ws
-
wsorig
;
ilseq:
*
src
=
s
;
*
src
=
(
const
void
*
)
s
;
ilseq2:
/* enter permanently failing state */
*
(
unsigned
*
)
st
=
FAILSTATE
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录