summaryrefslogtreecommitdiff
path: root/time
diff options
context:
space:
mode:
Diffstat (limited to 'time')
-rw-r--r--time/asctime.c2
-rw-r--r--time/localtime.c2
-rw-r--r--time/strftime.c14
3 files changed, 6 insertions, 12 deletions
diff --git a/time/asctime.c b/time/asctime.c
index bb20a3aedc..25bc9de04c 100644
--- a/time/asctime.c
+++ b/time/asctime.c
@@ -39,7 +39,7 @@ __asctime_r (const struct tm *tp, char *buf)
{
if (tp == NULL)
{
- errno = EINVAL;
+ __set_errno (EINVAL);
return NULL;
}
diff --git a/time/localtime.c b/time/localtime.c
index 2a780304d6..ce243e64b4 100644
--- a/time/localtime.c
+++ b/time/localtime.c
@@ -50,7 +50,7 @@ __localtime_r (timer, tp)
if (timer == NULL)
{
- errno = EINVAL;
+ __set_errno (EINVAL);
return NULL;
}
diff --git a/time/strftime.c b/time/strftime.c
index 7837373aed..9d23cf7183 100644
--- a/time/strftime.c
+++ b/time/strftime.c
@@ -529,17 +529,11 @@ strftime (s, maxsize, format, tp)
#ifdef _NL_CURRENT
if (modifier == 'O' && 0 <= number_value)
{
- /* ALT_DIGITS is the first entry in an array with
- alternative digit symbols. We have to find string
- number NUMBER_VALUE, but must not look beyond
- END_ALT_DIGITS. */
- int run = number_value;
- const char *cp = alt_digits;
+ /* Get the locale specific alternate representation of
+ the number NUMBER_VALUE. If none exist NULL is returned. */
+ const char *cp = _nl_get_alt_digit (number_value);
- while (run-- > 0 && cp < end_alt_digits)
- cp = strchr (cp, '\0') + 1;
-
- if (cp < end_alt_digits)
+ if (cp != NULL)
{
size_t digitlen = strlen (cp);
if (digitlen != 0)