Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Musl
提交
16bf4665
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看板
提交
16bf4665
编写于
6月 06, 2015
作者:
R
Rich Felker
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
make static C and C.UTF-8 locales available outside of newlocale
上级
312eea2e
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
28 addition
and
21 deletion
+28
-21
src/internal/locale_impl.h
src/internal/locale_impl.h
+7
-0
src/locale/c_locale.c
src/locale/c_locale.c
+15
-0
src/locale/locale_map.c
src/locale/locale_map.c
+2
-10
src/locale/newlocale.c
src/locale/newlocale.c
+4
-11
未找到文件。
src/internal/locale_impl.h
浏览文件 @
16bf4665
...
...
@@ -12,6 +12,10 @@ struct __locale_map {
const
struct
__locale_map
*
next
;
};
extern
const
struct
__locale_map
__c_dot_utf8
;
extern
const
struct
__locale_struct
__c_locale
;
extern
const
struct
__locale_struct
__c_dot_utf8_locale
;
const
struct
__locale_map
*
__get_locale
(
int
,
const
char
*
);
const
char
*
__mo_lookup
(
const
void
*
,
size_t
,
const
char
*
);
const
char
*
__lctrans
(
const
char
*
,
const
struct
__locale_map
*
);
...
...
@@ -20,6 +24,9 @@ const char *__lctrans_cur(const char *);
#define LCTRANS(msg, lc, loc) __lctrans(msg, (loc)->cat[(lc)])
#define LCTRANS_CUR(msg) __lctrans_cur(msg)
#define C_LOCALE ((locale_t)&__c_locale)
#define UTF8_LOCALE ((locale_t)&__c_dot_utf8_locale)
#define CURRENT_LOCALE (__pthread_self()->locale)
#define CURRENT_UTF8 (!!__pthread_self()->locale->cat[LC_CTYPE])
...
...
src/locale/c_locale.c
0 → 100644
浏览文件 @
16bf4665
#include "locale_impl.h"
#include <stdint.h>
static
const
uint32_t
empty_mo
[]
=
{
0x950412de
,
0
,
-
1
,
-
1
,
-
1
};
const
struct
__locale_map
__c_dot_utf8
=
{
.
map
=
empty_mo
,
.
map_size
=
sizeof
empty_mo
,
.
name
=
"C.UTF-8"
};
const
struct
__locale_struct
__c_locale
=
{
0
};
const
struct
__locale_struct
__c_dot_utf8_locale
=
{
.
cat
[
LC_CTYPE
]
=
&
__c_dot_utf8
};
src/locale/locale_map.c
浏览文件 @
16bf4665
...
...
@@ -24,14 +24,6 @@ static const char envvars[][12] = {
"LC_MESSAGES"
,
};
static
const
uint32_t
empty_mo
[]
=
{
0x950412de
,
0
,
-
1
,
-
1
,
-
1
};
const
struct
__locale_map
__c_dot_utf8
=
{
.
map
=
empty_mo
,
.
map_size
=
sizeof
empty_mo
,
.
name
=
"C.UTF-8"
};
const
struct
__locale_map
*
__get_locale
(
int
cat
,
const
char
*
val
)
{
static
int
lock
[
2
];
...
...
@@ -107,8 +99,8 @@ const struct __locale_map *__get_locale(int cat, const char *val)
* sake of being able to do message translations at the
* application level. */
if
(
!
new
&&
(
new
=
malloc
(
sizeof
*
new
)))
{
new
->
map
=
empty_mo
;
new
->
map_size
=
sizeof
empty_mo
;
new
->
map
=
__c_dot_utf8
.
map
;
new
->
map_size
=
__c_dot_utf8
.
map_size
;
memcpy
(
new
->
name
,
val
,
n
);
new
->
name
[
n
]
=
0
;
new
->
next
=
loc_head
;
...
...
src/locale/newlocale.c
浏览文件 @
16bf4665
...
...
@@ -3,16 +3,9 @@
#include "locale_impl.h"
#include "libc.h"
extern
const
struct
__locale_map
__c_dot_utf8
;
static
const
struct
__locale_struct
c_locale
=
{
0
};
static
const
struct
__locale_struct
c_dot_utf8_locale
=
{
.
cat
[
LC_CTYPE
]
=
&
__c_dot_utf8
};
int
__loc_is_allocated
(
locale_t
loc
)
{
return
loc
&&
loc
!=
&
c_locale
&&
loc
!=
&
c_dot_utf8_locale
;
return
loc
&&
loc
!=
C_LOCALE
&&
loc
!=
UTF8_LOCALE
;
}
locale_t
__newlocale
(
int
mask
,
const
char
*
name
,
locale_t
loc
)
...
...
@@ -44,9 +37,9 @@ locale_t __newlocale(int mask, const char *name, locale_t loc)
}
if
(
!
j
)
return
(
locale_t
)
&
c_locale
;
if
(
j
==
1
&&
tmp
.
cat
[
LC_CTYPE
]
==
c_dot_utf8_locale
.
cat
[
LC_CTYPE
]
)
return
(
locale_t
)
&
c_dot_utf8_locale
;
return
C_LOCALE
;
if
(
j
==
1
&&
tmp
.
cat
[
LC_CTYPE
]
==
&
__c_dot_utf8
)
return
UTF8_LOCALE
;
if
((
loc
=
malloc
(
sizeof
*
loc
)))
*
loc
=
tmp
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录