📄 c_locale_glibc2.c
字号:
#if !defined (_STLP_NO_MBSTATE_T)
int _Locale_mb_cur_max( struct _Locale_ctype * __DUMMY_PAR) {
printf( "%s:%d\n", __FILE__, __LINE__ );
return 0;
}
int _Locale_mb_cur_min( struct _Locale_ctype * __DUMMY_PAR) {
printf( "%s:%d\n", __FILE__, __LINE__ );
return 0;
}
int _Locale_is_stateless( struct _Locale_ctype * __DUMMY_PAR) {
printf( "%s:%d\n", __FILE__, __LINE__ );
return 1;
}
#if !defined (_STLP_NO_WCHAR_T)
wint_t _Locale_btowc(struct _Locale_ctype *__loc, int c) {
wint_t _c;
/* __c_locale __tmp = __uselocale( __loc ); */
_c = btowc( c );
/* __uselocale( __tmp ); */
return _c;
}
int _Locale_wctob(struct _Locale_ctype *__loc, wint_t c) {
int _c;
/* __c_locale __tmp = __uselocale( __loc ); */
_c = wctob( c );
/* __uselocale( __tmp ); */
return _c;
}
size_t _Locale_mbtowc(struct _Locale_ctype *__DUMMY_PAR1,
wchar_t *__DUMMY_PAR2,
const char *__DUMMY_PAR3, size_t __DUMMY_PAR4,
mbstate_t *__DUMMY_PAR5) {
printf( "%s:%d\n", __FILE__, __LINE__ );
return (size_t) -1;
}
size_t _Locale_wctomb(struct _Locale_ctype *__DUMMY_PAR1,
char *__DUMMY_PAR2, size_t __DUMMY_PAR3,
const wchar_t __DUMMY_PAR4,
mbstate_t *__DUMMY_PAR5) {
printf( "%s:%d\n", __FILE__, __LINE__ );
return (size_t) -1;
}
#endif
size_t _Locale_unshift(struct _Locale_ctype *__DUMMY_PAR1,
mbstate_t *__DUMMY_PAR2,
char *__DUMMY_PAR3, size_t __DUMMY_PAR4, char ** __DUMMY_PAR5) {
printf( "%s:%d\n", __FILE__, __LINE__ );
return (size_t) -1;
}
#endif /* _STLP_NO_MBSTATE_T */
/* Collate */
int _Locale_strcmp(struct _Locale_collate * __loc,
const char *s1, size_t n1,
const char *s2, size_t n2) {
int ret;
char buf1[64], buf2[64];
while (n1 > 0 && n2 > 0) {
size_t bufsize1 = n1 < 63 ? n1 : 63;
size_t bufsize2 = n2 < 63 ? n2 : 63;
strncpy(buf1, s1, bufsize1); buf1[bufsize1] = 0;
strncpy(buf2, s2, bufsize2); buf2[bufsize2] = 0;
ret = strcoll_l(buf1, buf2, (__c_locale)__loc);
if (ret != 0) return ret;
s1 += bufsize1; n1 -= bufsize1;
s2 += bufsize2; n2 -= bufsize2;
}
return ret;
}
#if !defined (_STLP_NO_WCHAR_T)
int _Locale_strwcmp(struct _Locale_collate *__loc,
const wchar_t *s1, size_t n1,
const wchar_t *s2, size_t n2) {
int ret;
wchar_t buf1[64], buf2[64];
while (n1 > 0 && n2 > 0) {
size_t bufsize1 = n1 < 63 ? n1 : 63;
size_t bufsize2 = n2 < 63 ? n2 : 63;
wcsncpy(buf1, s1, bufsize1); buf1[bufsize1] = 0;
wcsncpy(buf2, s2, bufsize2); buf2[bufsize2] = 0;
ret = wcscoll_l(buf1, buf2, (__c_locale)__loc);
if (ret != 0) return ret;
s1 += bufsize1; n1 -= bufsize1;
s2 += bufsize2; n2 -= bufsize2;
}
return ret;
}
#endif
size_t _Locale_strxfrm(struct _Locale_collate *__loc,
char *dest, size_t dest_n,
const char *src, size_t src_n )
{
const char *real_src;
char *buf = NULL;
size_t result;
if (src_n == 0)
{
if (dest != NULL) dest[0] = 0;
return 0;
}
if (src[src_n] != 0) {
buf = malloc(src_n + 1);
strncpy(buf, src, src_n);
buf[src_n] = 0;
real_src = buf;
}
else
real_src = src;
result = __strxfrm_l(dest, real_src, dest_n, (__c_locale)__loc);
if (buf != NULL) free(buf);
return result;
}
# ifndef _STLP_NO_WCHAR_T
size_t _Locale_strwxfrm( struct _Locale_collate *__loc,
wchar_t *dest, size_t dest_n,
const wchar_t *src, size_t src_n )
{
const wchar_t *real_src;
wchar_t *buf = NULL;
size_t result;
if (src_n == 0)
{
if (dest != NULL) dest[0] = 0;
return 0;
}
if (src[src_n] != 0) {
buf = malloc((src_n + 1) * sizeof(wchar_t));
wcsncpy(buf, src, src_n);
buf[src_n] = 0;
real_src = buf;
}
else
real_src = src;
result = __wcsxfrm_l(dest, real_src, dest_n, (__c_locale)__loc);
if (buf != NULL) free(buf);
return result;
}
# endif
/* Numeric */
char _Locale_decimal_point(struct _Locale_numeric *__loc)
{
return (__loc != 0) ? *(__nl_langinfo_l(RADIXCHAR, (__c_locale)__loc)) : '.';
}
char _Locale_thousands_sep(struct _Locale_numeric *__loc)
{
return (__loc != 0) ? *(__nl_langinfo_l(THOUSEP, (__c_locale)__loc)) : ',';
}
const char* _Locale_grouping(struct _Locale_numeric *__loc)
{
return (__loc != 0 && _Locale_thousands_sep(__loc) != '\0' ) ?
(__nl_langinfo_l(GROUPING, (__c_locale)__loc)) : "";
}
const char *_Locale_true(struct _Locale_numeric *__loc)
{
return __loc != 0 ? __nl_langinfo_l(YESSTR, (__c_locale)__loc) : "true";
}
const char *_Locale_false(struct _Locale_numeric *__loc)
{
return __loc != 0 ? __nl_langinfo_l(NOSTR, (__c_locale)__loc) : "false";
}
/* Monetary */
const char *_Locale_int_curr_symbol(struct _Locale_monetary *__loc)
{
return __loc != 0 ? __nl_langinfo_l(INT_CURR_SYMBOL, (__c_locale)__loc) : 0;
}
const char *_Locale_currency_symbol(struct _Locale_monetary *__loc)
{
return __loc != 0 ? __nl_langinfo_l(CURRENCY_SYMBOL, (__c_locale)__loc) : 0;
}
char _Locale_mon_decimal_point(struct _Locale_monetary * __loc)
{
return __loc != 0 ? *(__nl_langinfo_l(MON_DECIMAL_POINT,(__c_locale)__loc)) : '.';
}
char _Locale_mon_thousands_sep(struct _Locale_monetary *__loc)
{
return __loc != 0 ? *(__nl_langinfo_l(MON_THOUSANDS_SEP, (__c_locale)__loc)) : ',';
}
const char *_Locale_mon_grouping(struct _Locale_monetary *__loc)
{
return (__loc != 0 && _Locale_mon_thousands_sep( __loc ) != '\0' ) ?
__nl_langinfo_l(MON_GROUPING, (__c_locale)__loc) : _empty_str;
}
const char *_Locale_positive_sign(struct _Locale_monetary *__loc)
{
return __loc != 0 ? __nl_langinfo_l(POSITIVE_SIGN, (__c_locale)__loc) : _empty_str;
}
const char *_Locale_negative_sign(struct _Locale_monetary *__loc)
{
return __loc != 0 ? __nl_langinfo_l(NEGATIVE_SIGN, (__c_locale)__loc) : _empty_str;
}
char _Locale_int_frac_digits(struct _Locale_monetary *__loc)
{
return __loc != 0 ? *(__nl_langinfo_l(INT_FRAC_DIGITS, (__c_locale)__loc)) : CHAR_MAX;
}
char _Locale_frac_digits(struct _Locale_monetary *__loc)
{
return __loc != 0 ? *(__nl_langinfo_l(FRAC_DIGITS, (__c_locale)__loc)) : CHAR_MAX;
}
/* 1 if currency_symbol precedes a positive value, 0 if succeeds */
int _Locale_p_cs_precedes(struct _Locale_monetary *__loc)
{
return __loc != 0 ? *(__nl_langinfo_l(P_CS_PRECEDES, (__c_locale)__loc)) : CHAR_MAX;
}
/* 1 if a space separates currency_symbol from a positive value. */
int _Locale_p_sep_by_space(struct _Locale_monetary *__loc)
{
return __loc != 0 ? *(__nl_langinfo_l(P_SEP_BY_SPACE, (__c_locale)__loc)) : CHAR_MAX;
}
/*
* 0 Parentheses surround the quantity and currency_symbol
* 1 The sign string precedes the quantity and currency_symbol
* 2 The sign string succeeds the quantity and currency_symbol.
* 3 The sign string immediately precedes the currency_symbol.
* 4 The sign string immediately succeeds the currency_symbol.
*/
int _Locale_p_sign_posn(struct _Locale_monetary *__loc)
{
return __loc != 0 ? *(__nl_langinfo_l(P_SIGN_POSN, (__c_locale)__loc)) : CHAR_MAX;
}
/* 1 if currency_symbol precedes a negative value, 0 if succeeds */
int _Locale_n_cs_precedes(struct _Locale_monetary *__loc)
{
return __loc != 0 ? *(__nl_langinfo_l(N_CS_PRECEDES, (__c_locale)__loc)) : CHAR_MAX;
}
/* 1 if a space separates currency_symbol from a negative value. */
int _Locale_n_sep_by_space(struct _Locale_monetary *__loc)
{
return __loc != 0 ? *(__nl_langinfo_l(N_SEP_BY_SPACE, (__c_locale)__loc)) : CHAR_MAX;
}
/*
* 0 Parentheses surround the quantity and currency_symbol
* 1 The sign string precedes the quantity and currency_symbol
* 2 The sign string succeeds the quantity and currency_symbol.
* 3 The sign string immediately precedes the currency_symbol.
* 4 The sign string immediately succeeds the currency_symbol.
*/
int _Locale_n_sign_posn(struct _Locale_monetary *__loc)
{
return __loc != 0 ? *(__nl_langinfo_l(N_SIGN_POSN, (__c_locale)__loc)) : CHAR_MAX;
}
/* Time */
const char *_Locale_full_monthname(struct _Locale_time *__loc, int _m )
{
return (__loc != 0 && _m >= 0 && _m < 12) ? __nl_langinfo_l(MON_1 + _m, (__c_locale)__loc) : 0;
}
const char *_Locale_abbrev_monthname(struct _Locale_time *__loc, int _m )
{
return (__loc != 0 && _m >= 0 && _m < 12) ? __nl_langinfo_l(ABMON_1 + _m, (__c_locale)__loc) : 0;
}
const char *_Locale_full_dayofweek(struct _Locale_time *__loc, int _d )
{
return (__loc != 0 && _d >= 0 && _d < 7) ? __nl_langinfo_l(DAY_1 + _d, (__c_locale)__loc) : 0;
}
const char *_Locale_abbrev_dayofweek(struct _Locale_time *__loc, int _d )
{
return (__loc != 0 && _d >= 0 && _d < 7) ? __nl_langinfo_l(ABDAY_1 + _d, (__c_locale)__loc) : 0;
}
const char *_Locale_d_t_fmt(struct _Locale_time *__loc)
{
return __loc != 0 ? __nl_langinfo_l(D_T_FMT, (__c_locale)__loc) : 0;
}
const char *_Locale_d_fmt(struct _Locale_time *__loc )
{
return __loc != 0 ? __nl_langinfo_l(D_FMT, (__c_locale)__loc) : 0;
}
const char *_Locale_t_fmt(struct _Locale_time *__loc )
{
return __loc != 0 ? __nl_langinfo_l(T_FMT, (__c_locale)__loc) : 0;
}
const char *_Locale_long_d_t_fmt(struct _Locale_time *__loc )
{
return __loc != 0 ? __nl_langinfo_l(ERA_D_T_FMT, (__c_locale)__loc) : 0;
}
const char *_Locale_long_d_fmt(struct _Locale_time *__loc )
{
return __loc != 0 ? __nl_langinfo_l(ERA_D_FMT, (__c_locale)__loc) : 0;
}
const char *_Locale_am_str(struct _Locale_time *__loc )
{
return __loc != 0 ? __nl_langinfo_l(AM_STR, (__c_locale)__loc) : _empty_str;
}
const char *_Locale_pm_str(struct _Locale_time* __loc )
{
return __loc != 0 ? __nl_langinfo_l(PM_STR, (__c_locale)__loc) : _empty_str;
}
const char *_Locale_t_fmt_ampm(struct _Locale_time *__loc )
{
return __loc != 0 ? __nl_langinfo_l(T_FMT_AMPM, (__c_locale)__loc) : 0;
}
/* Messages */
nl_catd_type _Locale_catopen(struct _Locale_messages *__loc, const char *__cat_name )
{
return catopen( __cat_name, NL_CAT_LOCALE );
}
void _Locale_catclose(struct _Locale_messages *__loc, nl_catd_type __cat )
{
catclose( __cat );
}
const char *_Locale_catgets(struct _Locale_messages *__loc, nl_catd_type __cat,
int __setid, int __msgid, const char *dfault)
{
return catgets( __cat, __setid, __msgid, dfault );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -