summaryrefslogtreecommitdiff
path: root/libc/misc
diff options
context:
space:
mode:
Diffstat (limited to 'libc/misc')
-rw-r--r--libc/misc/time/Makefile4
-rw-r--r--libc/misc/time/time.c32
2 files changed, 36 insertions, 0 deletions
diff --git a/libc/misc/time/Makefile b/libc/misc/time/Makefile
index b47a97c33..1ed212cf0 100644
--- a/libc/misc/time/Makefile
+++ b/libc/misc/time/Makefile
@@ -38,6 +38,10 @@ ifeq ($(UCLIBC_HAS_XLOCALE),y)
endif
ifeq ($(UCLIBC_HAS_WCHAR),y)
+ MOBJ += wcsftime.o
+ifeq ($(UCLIBC_HAS_XLOCALE),y)
+ MOBJx += wcsftime_l.o
+endif
endif
CSRC= adjtime.c ftime.c clock_gettime.c
diff --git a/libc/misc/time/time.c b/libc/misc/time/time.c
index c37874e28..e2f1f6c6d 100644
--- a/libc/misc/time/time.c
+++ b/libc/misc/time/time.c
@@ -2212,6 +2212,38 @@ time_t _time_mktime(struct tm *timeptr, int store_on_success)
#endif
/**********************************************************************/
+#if defined(L_wcsftime) || defined(L_wcsftime_l)
+
+#if defined(__UCLIBC_HAS_XLOCALE__) && !defined(__UCLIBC_DO_XLOCALE)
+
+extern size_t __wcsftime_l (wchar_t *__restrict __s, size_t __maxsize,
+ __const wchar_t *__restrict __format,
+ __const struct tm *__restrict __timeptr,
+ __locale_t __loc) __THROW;
+
+size_t wcsftime(wchar_t *__restrict s, size_t maxsize,
+ const wchar_t *__restrict format,
+ const struct tm *__restrict timeptr)
+{
+ return __wcsftime_l(s, maxsize, format, timeptr, __UCLIBC_CURLOCALE);
+}
+
+#else /* defined(__UCLIBC_HAS_XLOCALE__) && !defined(__UCLIBC_DO_XLOCALE) */
+
+size_t __XL(wcsftime)(wchar_t *__restrict s, size_t maxsize,
+ const wchar_t *__restrict format,
+ const struct tm *__restrict timeptr __LOCALE_PARAM )
+{
+#warning wcsftime always fails
+ return 0; /* always fail */
+}
+
+__XL_ALIAS(wcsftime)
+
+#endif /* defined(__UCLIBC_HAS_XLOCALE__) && !defined(__UCLIBC_DO_XLOCALE) */
+
+#endif
+/**********************************************************************/
#ifdef L_dysize
/* Return the number of days in YEAR. */