From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 65792 invoked by alias); 23 Aug 2016 15:56:05 -0000 Mailing-List: contact newlib-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: newlib-cvs-owner@sourceware.org Received: (qmail 65720 invoked by uid 9078); 23 Aug 2016 15:56:03 -0000 Date: Tue, 23 Aug 2016 15:56:00 -0000 Message-ID: <20160823155603.65718.qmail@sourceware.org> Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Corinna Vinschen To: cygwin-cvs@sourceware.org, newlib-cvs@sourceware.org Subject: [newlib-cygwin] Implement GNU extension wcsftime_l X-Act-Checkin: newlib-cygwin X-Git-Author: Corinna Vinschen X-Git-Refname: refs/heads/master X-Git-Oldrev: 463a8afaa58b80926b0236e14a6171f45c1b784f X-Git-Newrev: e636fe3d489ca60d171ae1fcf5fabecdd1665af7 X-SW-Source: 2016-q3/txt/msg00065.txt.bz2 https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=e636fe3d489ca60d171ae1fcf5fabecdd1665af7 commit e636fe3d489ca60d171ae1fcf5fabecdd1665af7 Author: Corinna Vinschen Date: Tue Aug 23 17:41:50 2016 +0200 Implement GNU extension wcsftime_l Signed-off-by: Corinna Vinschen Diff: --- newlib/libc/include/wchar.h | 4 ++++ newlib/libc/time/strftime.c | 5 ++--- winsup/cygwin/common.din | 1 + 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/newlib/libc/include/wchar.h b/newlib/libc/include/wchar.h index b7f8374..4766ca9 100644 --- a/newlib/libc/include/wchar.h +++ b/newlib/libc/include/wchar.h @@ -132,6 +132,10 @@ wchar_t *_EXFUN(_wcsdup_r, (struct _reent *, const wchar_t * )); size_t _EXFUN(wcscspn, (const wchar_t *, const wchar_t *)); size_t _EXFUN(wcsftime, (wchar_t *__restrict, size_t, const wchar_t *__restrict, const struct tm *__restrict)); +#if __GNU_VISIBLE +size_t wcsftime_l (wchar_t *__restrict, size_t, const wchar_t *__restrict, + const struct tm *__restrict, locale_t); +#endif size_t _EXFUN(wcslcat, (wchar_t *, const wchar_t *, size_t)); size_t _EXFUN(wcslcpy, (wchar_t *, const wchar_t *, size_t)); size_t _EXFUN(wcslen, (const wchar_t *)); diff --git a/newlib/libc/time/strftime.c b/newlib/libc/time/strftime.c index 46c2d95..f11a002 100644 --- a/newlib/libc/time/strftime.c +++ b/newlib/libc/time/strftime.c @@ -311,6 +311,7 @@ locale, hard-coding the "C" locale settings. # define STRLEN(a) strlen(a) # else # define strftime wcsftime /* Alternate function name */ +# define strftime_l wcsftime_l /* Alternate function name */ # define CHAR wchar_t /* string type basis */ # define CQ(a) L##a /* character constant qualifier */ # define snprintf swprintf /* wide-char equivalent function name */ @@ -1460,9 +1461,8 @@ _DEFUN (strftime, (s, maxsize, format, tim_p), #endif /* !_WANT_C99_TIME_FORMATS */ } -#if !defined(MAKE_WCSFTIME) size_t -strftime_l (char *__restrict s, size_t maxsize, const char *__restrict format, +strftime_l (CHAR *__restrict s, size_t maxsize, const CHAR *__restrict format, const struct tm *__restrict tim_p, struct __locale_t *locale) { #ifdef _WANT_C99_TIME_FORMATS @@ -1479,7 +1479,6 @@ strftime_l (char *__restrict s, size_t maxsize, const char *__restrict format, return __strftime (s, maxsize, format, tim_p, locale, NULL, NULL); #endif /* !_WANT_C99_TIME_FORMATS */ } -#endif /* The remainder of this file can serve as a regression test. Compile * with -D_REGRESSION_TEST. */ diff --git a/winsup/cygwin/common.din b/winsup/cygwin/common.din index 7fce587..12705fe 100644 --- a/winsup/cygwin/common.din +++ b/winsup/cygwin/common.din @@ -1522,6 +1522,7 @@ wcscpy NOSIGFE wcscspn NOSIGFE wcsdup NOSIGFE wcsftime SIGFE +wcsftime_l SIGFE wcslcat NOSIGFE wcslcpy NOSIGFE wcslen NOSIGFE