diff options
Diffstat (limited to 'time/strftime.c')
-rw-r--r-- | time/strftime.c | 29 |
1 files changed, 9 insertions, 20 deletions
diff --git a/time/strftime.c b/time/strftime.c index a3256ea245..d9ed3ffe8c 100644 --- a/time/strftime.c +++ b/time/strftime.c @@ -291,8 +291,11 @@ static const CHAR_T zeroes[16] = /* "0000000000000000" */ MEMCPY ((PTR) p, (const PTR) (s), _n)) #ifdef COMPILE_WIDE -# ifdef USE_IN_EXTENDED_LOCALE_MODEL -# define widen(os, ws, l) \ +# ifndef USE_IN_EXTENDED_LOCALE_MODEL +# undef __mbsrtowcs_l +# define __mbsrtowcs_l(d, s, l, st, loc) __mbsrtowcs (d, s, l, st) +# endif +# define widen(os, ws, l) \ { \ mbstate_t __st; \ const char *__s = os; \ @@ -301,17 +304,6 @@ static const CHAR_T zeroes[16] = /* "0000000000000000" */ ws = alloca ((l + 1) * sizeof (wchar_t)); \ (void) __mbsrtowcs_l (ws, &__s, l, &__st, loc); \ } -# else -# define widen(os, ws, l) \ - { \ - mbstate_t __st; \ - const char *__s = os; \ - memset (&__st, '\0', sizeof (__st)); \ - l = __mbsrtowcs (NULL, &__s, 0, &__st); \ - ws = alloca ((l + 1) * sizeof (wchar_t)); \ - (void) __mbsrtowcs (ws, &__s, l, &__st); \ - } -# endif #endif @@ -479,8 +471,10 @@ static CHAR_T const month_name[][10] = #else # ifdef COMPILE_WIDE # define my_strftime wcsftime +# define nl_get_alt_digit _nl_get_walt_digit # else # define my_strftime strftime +# define nl_get_alt_digit _nl_get_alt_digit # endif # define ut_argument # define ut_argument_spec @@ -995,13 +989,8 @@ my_strftime (s, maxsize, format, tp ut_argument LOCALE_PARAM) #ifdef _NL_CURRENT /* Get the locale specific alternate representation of the number NUMBER_VALUE. If none exist NULL is returned. */ -# ifdef COMPILE_WIDE - const wchar_t *cp = _nl_get_walt_digit (number_value - HELPER_LOCALE_ARG); -# else - const char *cp = _nl_get_alt_digit (number_value - HELPER_LOCALE_ARG); -# endif + const CHAR_T *cp = nl_get_alt_digit (number_value + HELPER_LOCALE_ARG); if (cp != NULL) { |