2003-01-19  Jim Meyering  <jim@meyering.net>

	* time/strftime.c: (widen): 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.
This commit is contained in:
Ulrich Drepper 2003-01-19 18:39:38 +00:00
parent b1a173f75e
commit 978bd14399
2 changed files with 16 additions and 20 deletions

View File

@ -1,3 +1,10 @@
2003-01-19 Jim Meyering <jim@meyering.net>
* time/strftime.c: (widen): 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.
2003-01-19 Ulrich Drepper <drepper@redhat.com>
* time/strftime.c (my_strftime): Handle very large width

View File

@ -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)
{