* time/time.h (__strptime_l, strptime_l): Declare them.

* time/time.h (__strftime_l, strftime_l): Declare them.
	* wcsmbs/wchar.h (__wcsftime_l, wcsftime_l): Declare them.
	* time/strftime_l.c: New file.
	* time/wcsftime_l.c: New file.
	* time/Makefile (routines): Add strftime_l, wcsftime_l.
	* time/Versions (libc: GLIBC_2.3): Add __strftime_l, __wcsftime_l,
	strftime_l, wcsftime_l.
This commit is contained in:
Roland McGrath 2002-08-27 22:38:19 +00:00
parent 1d4959d856
commit c4d6f155e0
7 changed files with 105 additions and 6 deletions

View File

@ -1,5 +1,15 @@
2002-08-27 Roland McGrath <roland@redhat.com> 2002-08-27 Roland McGrath <roland@redhat.com>
* time/time.h (__strptime_l, strptime_l): Declare them.
* time/time.h (__strftime_l, strftime_l): Declare them.
* wcsmbs/wchar.h (__wcsftime_l, wcsftime_l): Declare them.
* time/strftime_l.c: New file.
* time/wcsftime_l.c: New file.
* time/Makefile (routines): Add strftime_l, wcsftime_l.
* time/Versions (libc: GLIBC_2.3): Add __strftime_l, __wcsftime_l,
strftime_l, wcsftime_l.
* locale/Versions (libc: GLIBC_PRIVATE): Move __uselocale to ... * locale/Versions (libc: GLIBC_PRIVATE): Move __uselocale to ...
(libc: GLIBC_2.3): ... here. (libc: GLIBC_2.3): ... here.

View File

@ -1,4 +1,4 @@
# Copyright (C) 1991-1999, 2000, 2001 Free Software Foundation, Inc. # Copyright (C) 1991-1999,2000,01,02 Free Software Foundation, Inc.
# This file is part of the GNU C Library. # This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or # The GNU C Library is free software; you can redistribute it and/or
@ -24,12 +24,12 @@ subdir := time
headers := time.h sys/time.h sys/timeb.h bits/time.h headers := time.h sys/time.h sys/timeb.h bits/time.h
routines := offtime asctime clock ctime ctime_r difftime \ routines := offtime asctime clock ctime ctime_r difftime \
gmtime localtime mktime strftime time \ gmtime localtime mktime time \
gettimeofday settimeofday adjtime tzset \ gettimeofday settimeofday adjtime tzset \
tzfile getitimer setitimer \ tzfile getitimer setitimer \
stime dysize timegm ftime \ stime dysize timegm ftime \
strptime getdate wcsftime strptime getdate \
strftime wcsftime strftime_l wcsftime_l
distribute := datemsk distribute := datemsk
tests := test_time clocktest tst-posixtz tst-strptime tst_wcsftime \ tests := test_time clocktest tst-posixtz tst-strptime tst_wcsftime \

View File

@ -50,4 +50,13 @@ libc {
# w* # w*
wcsftime; wcsftime;
} }
GLIBC_2.3 {
# s*
strftime_l;
# w*
wcsftime_l;
# these internal names are used by libstdc++
__strftime_l; __wcsftime_l;
}
} }

22
time/strftime_l.c Normal file
View File

@ -0,0 +1,22 @@
/* Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#define USE_IN_EXTENDED_LOCALE_MODEL 1
#include <strftime.c>
weak_alias (__strftime_l, strftime_l)

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991-1999, 2000, 2001 Free Software Foundation, Inc. /* Copyright (C) 1991-1999,2000,01,02 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -188,6 +188,28 @@ extern char *strptime (__const char *__restrict __s,
__THROW; __THROW;
# endif # endif
# ifdef __USE_GNU
/* Similar to the two functions above but take the information from
the provided locale and not the global locale. */
# include <xlocale.h>
extern size_t __strftime_l (char *__restrict __s, size_t __maxsize,
__const char *__restrict __format,
__const struct tm *__restrict __tp,
__locale_t __loc) __THROW;
extern size_t strftime_l (char *__restrict __s, size_t __maxsize,
__const char *__restrict __format,
__const struct tm *__restrict __tp,
__locale_t __loc) __THROW;
extern char *__strptime_l (__const char *__restrict __s,
__const char *__restrict __fmt, struct tm *__tp,
__locale_t __loc) __THROW;
extern char *strptime_l (__const char *__restrict __s,
__const char *__restrict __fmt, struct tm *__tp,
__locale_t __loc) __THROW;
# endif
/* Return the `struct tm' representation of *TIMER /* Return the `struct tm' representation of *TIMER
in Universal Coordinated Time (aka Greenwich Mean Time). */ in Universal Coordinated Time (aka Greenwich Mean Time). */
@ -358,7 +380,6 @@ extern int getdate_r (__const char *__restrict __string,
struct tm *__restrict __resbufp) __THROW; struct tm *__restrict __resbufp) __THROW;
# endif # endif
__END_DECLS __END_DECLS
#endif /* <time.h> included. */ #endif /* <time.h> included. */

22
time/wcsftime_l.c Normal file
View File

@ -0,0 +1,22 @@
/* Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#define USE_IN_EXTENDED_LOCALE_MODEL 1
#include <wcsftime.c>
weak_alias (__wcsftime_l, wcsftime_l)

View File

@ -699,6 +699,21 @@ extern size_t wcsftime (wchar_t *__restrict __s, size_t __maxsize,
__const wchar_t *__restrict __format, __const wchar_t *__restrict __format,
__const struct tm *__restrict __tp) __THROW; __const struct tm *__restrict __tp) __THROW;
# ifdef __USE_GNU
# include <xlocale.h>
/* Similar to `wcsftime' but takes the information from
the provided locale and not the global locale. */
extern size_t __wcsftime_l (wchar_t *__restrict __s, size_t __maxsize,
__const wchar_t *__restrict __format,
__const struct tm *__restrict __tp,
__locale_t __loc) __THROW;
extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize,
__const wchar_t *__restrict __format,
__const struct tm *__restrict __tp,
__locale_t __loc) __THROW;
# endif
/* The X/Open standard demands that most of the functions defined in /* The X/Open standard demands that most of the functions defined in
the <wctype.h> header must also appear here. This is probably the <wctype.h> header must also appear here. This is probably
because some X/Open members wrote their implementation before the because some X/Open members wrote their implementation before the