diff options
author | Jim Meyering <jim@meyering.net> | 2003-01-19 13:01:35 +0000 |
---|---|---|
committer | Jim Meyering <jim@meyering.net> | 2003-01-19 13:01:35 +0000 |
commit | 56b3c75e6321b1c36abf77e31a8842535a3ad5ff (patch) | |
tree | db65c4be29e607850df55521d2c071dc816075eb | |
parent | 7c9bd0e59c92fa1e4916467e53d09209b5844a21 (diff) | |
download | coreutils-56b3c75e6321b1c36abf77e31a8842535a3ad5ff.tar.xz |
(widen) [COMPILE_WIDE]: Merge nearly-identical definitions.
(nl_get_alt_digit) [! defined my_strftime]: Define.
(my_strftime) [_NL_CURRENT]: Merge nearly-identical uses of
_nl_get_alt_digit and _nl_get_walt_digit.
-rw-r--r-- | lib/strftime.c | 29 |
1 files changed, 9 insertions, 20 deletions
diff --git a/lib/strftime.c b/lib/strftime.c index b9b468a4a..9a421df44 100644 --- a/lib/strftime.c +++ b/lib/strftime.c @@ -292,8 +292,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; \ @@ -302,17 +305,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 @@ -488,8 +480,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 extra_args # define extra_args_spec @@ -998,13 +992,8 @@ my_strftime (s, maxsize, format, tp extra_args 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) { |