diff options
Diffstat (limited to 'libc/misc/time/time.c')
-rw-r--r-- | libc/misc/time/time.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/libc/misc/time/time.c b/libc/misc/time/time.c index e9ca07e4b..fac85638e 100644 --- a/libc/misc/time/time.c +++ b/libc/misc/time/time.c @@ -152,6 +152,8 @@ extern long int __strtol (__const char *__restrict __nptr, char **__restrict __endptr, int __base) __THROW __nonnull ((1)) __wur attribute_hidden; +extern char *__nl_langinfo (nl_item __item) __THROW attribute_hidden; + #ifdef __UCLIBC_HAS_XLOCALE__ #include <xlocale.h> extern long int __strtol_l (__const char *__restrict __nptr, @@ -168,6 +170,8 @@ extern size_t __strftime_l (char *__restrict __s, size_t __maxsize, extern char *__strptime_l (__const char *__restrict __s, __const char *__restrict __fmt, struct tm *__tp, __locale_t __loc) __THROW attribute_hidden; + +extern char *__nl_langinfo_l (nl_item __item, __locale_t l) attribute_hidden; #endif #ifndef __isleap @@ -1052,7 +1056,7 @@ size_t attribute_hidden __UCXL(strftime)(char *__restrict s, size_t maxsize, + (code & 7); #ifdef ENABLE_ERA_CODE if ((mod & NO_E_MOD) /* Actually, this means E modifier present. */ - && (*(o = __XL(nl_langinfo)(_NL_ITEM(LC_TIME, + && (*(o = __UCXL(nl_langinfo)(_NL_ITEM(LC_TIME, (int)(((unsigned char *)p)[4])) __LOCALE_ARG ))) @@ -1061,7 +1065,7 @@ size_t attribute_hidden __UCXL(strftime)(char *__restrict s, size_t maxsize, goto LOOP; } #endif - p = __XL(nl_langinfo)(_NL_ITEM(LC_TIME, + p = __UCXL(nl_langinfo)(_NL_ITEM(LC_TIME, (int)(*((unsigned char *)p))) __LOCALE_ARG ); @@ -1238,7 +1242,7 @@ size_t attribute_hidden __UCXL(strftime)(char *__restrict s, size_t maxsize, if ((code & MASK_SPEC) == STRING_SPEC) { o_count = SIZE_MAX; field_val += spec[STRINGS_NL_ITEM_START + (code & 0xf)]; - o = __XL(nl_langinfo)(_NL_ITEM(LC_TIME, field_val) __LOCALE_ARG ); + o = __UCXL(nl_langinfo)(_NL_ITEM(LC_TIME, field_val) __LOCALE_ARG ); } else { o_count = ((i >> 1) & 3) + 1; o = buf + o_count; @@ -1499,7 +1503,7 @@ char attribute_hidden *__UCXL(strptime)(const char *__restrict buf, const char * + (code & 7); #ifdef ENABLE_ERA_CODE if ((mod & NO_E_MOD) /* Actually, this means E modifier present. */ - && (*(o = __XL(nl_langinfo)(_NL_ITEM(LC_TIME, + && (*(o = __UCXL(nl_langinfo)(_NL_ITEM(LC_TIME, (int)(((unsigned char *)p)[4])) __LOCALE_ARG ))) @@ -1508,7 +1512,7 @@ char attribute_hidden *__UCXL(strptime)(const char *__restrict buf, const char * goto LOOP; } #endif - p = __XL(nl_langinfo)(_NL_ITEM(LC_TIME, + p = __UCXL(nl_langinfo)(_NL_ITEM(LC_TIME, (int)(*((unsigned char *)p))) __LOCALE_ARG ); goto LOOP; @@ -1523,7 +1527,7 @@ char attribute_hidden *__UCXL(strptime)(const char *__restrict buf, const char * /* Go backwards to check full names before abreviations. */ do { --j; - o = __XL(nl_langinfo)(i+j __LOCALE_ARG); + o = __UCXL(nl_langinfo)(i+j __LOCALE_ARG); if (!__UCXL(strncasecmp)(buf,o,__strlen(o) __LOCALE_ARG) && *o) { do { /* Found a match. */ ++buf; |