diff options
-rw-r--r-- | include/wchar.h | 2 | ||||
-rw-r--r-- | libc/misc/time/Makefile | 4 | ||||
-rw-r--r-- | libc/misc/time/time.c | 32 |
3 files changed, 36 insertions, 2 deletions
diff --git a/include/wchar.h b/include/wchar.h index ecb6c2cd9..908201216 100644 --- a/include/wchar.h +++ b/include/wchar.h @@ -842,7 +842,6 @@ extern int fputws_unlocked (__const wchar_t *__restrict __ws, #endif -#if 0 __BEGIN_NAMESPACE_C99 /* Format TP into S according to FORMAT. Write no more than MAXSIZE wide characters and return the number @@ -868,7 +867,6 @@ extern size_t __wcsftime_l (wchar_t *__restrict __s, size_t __maxsize, __locale_t __loc) __THROW; #endif /* __UCLIBC_HAS_XLOCALE__ */ # endif -#endif /* 0 */ /* The X/Open standard demands that most of the functions defined in the <wctype.h> header must also appear here. This is probably 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. */ |