Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Musl
提交
87e133b3
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看板
提交
87e133b3
编写于
8月 22, 2013
作者:
R
Rich Felker
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
strftime cleanup: avoid recomputing strlen when it's known
上级
45849d3d
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
16 addition
and
10 deletion
+16
-10
src/time/strftime.c
src/time/strftime.c
+16
-10
未找到文件。
src/time/strftime.c
浏览文件 @
87e133b3
...
...
@@ -46,12 +46,11 @@ static int week_num(const struct tm *tm)
size_t
__strftime_l
(
char
*
restrict
,
size_t
,
const
char
*
restrict
,
const
struct
tm
*
restrict
,
locale_t
);
const
char
*
__strftime_fmt_1
(
char
(
*
s
)[
100
],
int
f
,
const
struct
tm
*
tm
,
locale_t
loc
)
const
char
*
__strftime_fmt_1
(
char
(
*
s
)[
100
],
size_t
*
l
,
int
f
,
const
struct
tm
*
tm
,
locale_t
loc
)
{
nl_item
item
;
int
val
;
const
char
*
fmt
;
size_t
l
;
switch
(
f
)
{
case
'a'
:
...
...
@@ -122,6 +121,7 @@ const char *__strftime_fmt_1(char (*s)[100], int f, const struct tm *tm, locale_
fmt
=
"%02d"
;
goto
number
;
case
'n'
:
*
l
=
1
;
return
"
\n
"
;
case
'p'
:
item
=
tm
->
tm_hour
>=
12
?
PM_STR
:
AM_STR
;
...
...
@@ -137,6 +137,7 @@ const char *__strftime_fmt_1(char (*s)[100], int f, const struct tm *tm, locale_
fmt
=
"%02d"
;
goto
number
;
case
't'
:
*
l
=
1
;
return
"
\t
"
;
case
'T'
:
fmt
=
"%H:%M:%S"
;
...
...
@@ -177,25 +178,30 @@ const char *__strftime_fmt_1(char (*s)[100], int f, const struct tm *tm, locale_
goto
number
;
case
'z'
:
val
=
-
tm
->
__tm_gmtoff
;
snprintf
(
*
s
,
sizeof
*
s
,
"%+.2d%.2d"
,
val
/
3600
,
abs
(
val
%
3600
)
/
60
);
*
l
=
snprintf
(
*
s
,
sizeof
*
s
,
"%+.2d%.2d"
,
val
/
3600
,
abs
(
val
%
3600
)
/
60
);
return
*
s
;
case
'Z'
:
return
tm
->
__tm_zone
;
fmt
=
tm
->
__tm_zone
;
goto
string
;
case
'%'
:
*
l
=
1
;
return
"%"
;
default:
return
0
;
}
number:
snprintf
(
*
s
,
sizeof
*
s
,
fmt
,
val
);
*
l
=
snprintf
(
*
s
,
sizeof
*
s
,
fmt
,
val
);
return
*
s
;
nl_strcat:
return
__nl_langinfo_l
(
item
,
loc
);
fmt
=
__nl_langinfo_l
(
item
,
loc
);
string:
*
l
=
strlen
(
fmt
);
return
fmt
;
nl_strftime:
fmt
=
__nl_langinfo_l
(
item
,
loc
);
recu_strftime:
l
=
__strftime_l
(
*
s
,
sizeof
*
s
,
fmt
,
tm
,
loc
);
if
(
!
l
)
return
0
;
*
l
=
__strftime_l
(
*
s
,
sizeof
*
s
,
fmt
,
tm
,
loc
);
if
(
!
*
l
)
return
0
;
return
*
s
;
}
...
...
@@ -215,8 +221,8 @@ size_t __strftime_l(char *restrict s, size_t n, const char *restrict f, const st
}
f
++
;
if
(
*
f
==
'E'
||
*
f
==
'O'
)
f
++
;
t
=
__strftime_fmt_1
(
&
buf
,
*
f
,
tm
,
loc
);
if
(
!
t
||
(
k
=
strlen
(
t
))
>=
n
-
l
)
t
=
__strftime_fmt_1
(
&
buf
,
&
k
,
*
f
,
tm
,
loc
);
if
(
!
t
||
k
>=
n
-
l
)
return
0
;
memcpy
(
s
+
l
,
t
,
k
);
l
+=
k
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录