summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>2003-01-19 13:01:35 +0000
committerJim Meyering <jim@meyering.net>2003-01-19 13:01:35 +0000
commit56b3c75e6321b1c36abf77e31a8842535a3ad5ff (patch)
treedb65c4be29e607850df55521d2c071dc816075eb /lib
parent7c9bd0e59c92fa1e4916467e53d09209b5844a21 (diff)
downloadcoreutils-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.
Diffstat (limited to 'lib')
-rw-r--r--lib/strftime.c29
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)
{