diff options
Diffstat (limited to 'libc')
| -rw-r--r-- | libc/misc/locale/locale.c | 11 | ||||
| -rw-r--r-- | libc/misc/time/time.c | 16 | 
2 files changed, 18 insertions, 9 deletions
diff --git a/libc/misc/locale/locale.c b/libc/misc/locale/locale.c index b73ffa3dd..bf0628ee1 100644 --- a/libc/misc/locale/locale.c +++ b/libc/misc/locale/locale.c @@ -1002,7 +1002,7 @@ static const unsigned char nl_data[C_LC_ALL + 1 + 90 + 320] = {  	   ']', '\x00',    '^',    '[',    'n',    'N',    ']', '\x00',   }; -char *nl_langinfo(nl_item item) +char attribute_hidden *__nl_langinfo(nl_item item)  {  	unsigned int c;  	unsigned int i; @@ -1015,21 +1015,25 @@ char *nl_langinfo(nl_item item)  	}  	return (char *) cat_start;	/* Conveniently, this is the empty string. */  } +strong_alias(__nl_langinfo,nl_langinfo)  #else  /* __LOCALE_C_ONLY */  #if defined(__UCLIBC_HAS_XLOCALE__) && !defined(__UCLIBC_DO_XLOCALE) -char *nl_langinfo(nl_item item) +extern char *__nl_langinfo_l (nl_item __item, __locale_t l) attribute_hidden; + +char attribute_hidden *__nl_langinfo(nl_item item)  {  	return __nl_langinfo_l(item, __UCLIBC_CURLOCALE);  } +strong_alias(__nl_langinfo,nl_langinfo)  #else  /* defined(__UCLIBC_HAS_XLOCALE__) && !defined(__UCLIBC_DO_XLOCALE) */  static const char empty[] = ""; -char *__XL(nl_langinfo)(nl_item item   __LOCALE_PARAM ) +char attribute_hidden *__UCXL(nl_langinfo)(nl_item item   __LOCALE_PARAM )  {  	unsigned int c = _NL_ITEM_CATEGORY(item);  	unsigned int i = _NL_ITEM_INDEX(item); @@ -1041,6 +1045,7 @@ char *__XL(nl_langinfo)(nl_item item   __LOCALE_PARAM )  	return (char *) empty;  } +__UCXL_ALIAS(nl_langinfo)  #endif /* defined(__UCLIBC_HAS_XLOCALE__) && !defined(__UCLIBC_DO_XLOCALE) */ 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;  | 
