FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
node/src/node_i18n.cc at v1.8.0-commit · anchnk/node · GitHub
anchnk
/
node
Public
forked from
nodejs/node
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Pull requests
0
Actions
Projects
Wiki
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
node
/
src
/
node_i18n.cc
Copy path
More file actions
More file actions
Latest commit
History
History
History
66 lines (56 loc) · 2.15 KB
Breadcrumbs
node
/
src
/
node_i18n.cc
Copy path
File metadata and controls
66 lines (56 loc) · 2.15 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
/*
* notes: by srl295
* - When in NODE_HAVE_SMALL_ICU mode, ICU is linked against "stub" (null) data
* ( stubdata/libicudata.a ) containing nothing, no data, and it's also
* linked against a "small" data file which the SMALL_ICUDATA_ENTRY_POINT
* macro names. That's the "english+root" data.
*
* If icu_data_path is non-null, the user has provided a path and we assume
* it goes somewhere useful. We set that path in ICU, and exit.
* If icu_data_path is null, they haven't set a path and we want the
* "english+root" data. We call
* udata_setCommonData(SMALL_ICUDATA_ENTRY_POINT,...)
* to load up the english+root data.
*
* - when NOT in NODE_HAVE_SMALL_ICU mode, ICU is linked directly with its full
* data. All of the variables and command line options for changing data at
* runtime are disabled, as they wouldn't fully override the internal data.
* See: http://bugs.icu-project.org/trac/ticket/10924
*/
#
include
"
node_i18n.h
"
#
if
defined(NODE_HAVE_I18N_SUPPORT)
#
include
<
unicode/putil.h
>
#
include
<
unicode/udata.h
>
#
ifdef
NODE_HAVE_SMALL_ICU
/*
if this is defined, we have a 'secondary' entry point.
compare following to utypes.h defs for U_ICUDATA_ENTRY_POINT
*/
#
define
SMALL_ICUDATA_ENTRY_POINT
\
SMALL_DEF2
(
U_ICU_VERSION_MAJOR_NUM
,
U_LIB_SUFFIX_C_NAME
)
#
define
SMALL_DEF2
(
major, suff
)
SMALL_DEF
(major, suff)
#
ifndef
U_LIB_SUFFIX_C_NAME
#
define
SMALL_DEF
(
major, suff
) icusmdt##major##_dat
#
else
#
define
SMALL_DEF
(
major, suff
) icusmdt##suff##major##_dat
#
endif
extern
"
C
"
const
char
U_DATA_API
SMALL_ICUDATA_ENTRY_POINT
[];
#
endif
namespace
node
{
namespace
i18n
{
bool
InitializeICUDirectory
(
const
char
* icu_data_path) {
if
(icu_data_path !=
nullptr
) {
u_setDataDirectory
(icu_data_path);
return
true
;
//
no error
}
else
{
UErrorCode status =
U_ZERO_ERROR
;
#
ifdef
NODE_HAVE_SMALL_ICU
//
install the 'small' data.
udata_setCommonData
(&
SMALL_ICUDATA_ENTRY_POINT
, &status);
#
else
//
!NODE_HAVE_SMALL_ICU
//
no small data, so nothing to do.
#
endif
//
!NODE_HAVE_SMALL_ICU
return
(status ==
U_ZERO_ERROR
);
}
}
}
//
namespace i18n
}
//
namespace node
#
endif
//
NODE_HAVE_I18N_SUPPORT
Back
|
FazBrowse Home
|
New Git URL