about summary refs log tree commit diff
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;