summaryrefslogtreecommitdiff
path: root/time/asctime.c
diff options
context:
space:
mode:
Diffstat (limited to 'time/asctime.c')
-rw-r--r--time/asctime.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/time/asctime.c b/time/asctime.c
index 82e9f72f3f..730c6dc12b 100644
--- a/time/asctime.c
+++ b/time/asctime.c
@@ -21,6 +21,10 @@
#include <stdio.h>
#include <time.h>
+/* This is defined in locale/C-time.c in the GNU libc. */
+extern const struct locale_data _nl_C_LC_TIME;
+#define ab_day_name (&_nl_C_LC_TIME.values[_NL_ITEM_INDEX (ABDAY_1)].string)
+#define ab_month_name (&_nl_C_LC_TIME.values[_NL_ITEM_INDEX (ABMON_1)].string)
static const char format[] = "%.3s %.3s%3d %.2d:%.2d:%.2d %d\n";
static char result[ 3+1+ 3+1+20+1+20+1+20+1+20+1+20+1 + 1];
@@ -45,9 +49,9 @@ __asctime_r (const struct tm *tp, char *buf)
if (sprintf (buf, format,
(tp->tm_wday < 0 || tp->tm_wday >= 7 ?
- "???" : _NL_CURRENT (LC_TIME, ABDAY_1 + tp->tm_wday)),
+ "???" : ab_day_name[tp->tm_wday]),
(tp->tm_mon < 0 || tp->tm_mon >= 12 ?
- "???" : _NL_CURRENT (LC_TIME, ABMON_1 + tp->tm_mon)),
+ "???" : ab_month_name[tp->tm_mon]),
tp->tm_mday, tp->tm_hour, tp->tm_min,
tp->tm_sec, 1900 + tp->tm_year) < 0)
return NULL;