mirror of git://sourceware.org/git/glibc.git
Update.
2000-08-12 Andreas Jaeger <aj@suse.de> * include/features.h (__STDC_ISO_10646__): Define. Reported by Markus Kuhn <Markus.Kuhn@cl.cam.ac.uk>. * include/features.h (__USE_ISOC99): Define for _XOPEN_SOURCE >= 600. * locale/langinfo.h: Define YESSTR and NOSTR also for XPG4 (but not for revision 6 and up). * posix/sys/types.h: Define __need_timer_t and __need_clockid_t before including <time.h>. * time/time.h: Allow __need_timer_t and __need_clockid_t to be defined to get definitions of just these types. * signal/signal.h: Define thread signal handling functions also for POSIX95. * sysdeps/unix/sysv/linux/bits/types.h: Define thread types also for POSIX95. * sysdeps/unix/sysv/linux/alpha/bits/types.h: Likewise. * sysdeps/unix/sysv/linux/ia64/bits/types.h: Likewise. * sysdeps/unix/sysv/linux/mips/bits/types.h: Likewise. * sysdeps/unix/sysv/linux/sparc/bits/types.h: Likewise. * sysvipc/sys/shm.h: Define pid_t for XPG. * wcsmbs/wchar.h: Make the various wide char string and stream functions available for the respective XPG versions.
This commit is contained in:
parent
8de72f531e
commit
91bc38d09c
115
CONFORMANCE
115
CONFORMANCE
|
@ -13,7 +13,7 @@ The hdrchk test suite is available from the Open Group at
|
||||||
|
|
||||||
ftp://ftp.rdg.opengroup.org/pub/unsupported/stdtools/hdrchk/
|
ftp://ftp.rdg.opengroup.org/pub/unsupported/stdtools/hdrchk/
|
||||||
|
|
||||||
I've last run the suite on 1998-07-08 on a Linux/ix86 system with the
|
I've last run the suite on 2000-08-13 on a Linux/ix86 system with the
|
||||||
following results [*]:
|
following results [*]:
|
||||||
|
|
||||||
FIPS No reported problems
|
FIPS No reported problems
|
||||||
|
@ -22,105 +22,28 @@ following results [*]:
|
||||||
|
|
||||||
XPG3 No reported problems
|
XPG3 No reported problems
|
||||||
|
|
||||||
XPG4 The wide character I/O stuff is missing in glibc.
|
XPG4 No reported problems
|
||||||
|
|
||||||
|
POSIX96 Same as for UNIX98 (see below).
|
||||||
|
UNIX98 The message queue implementation is missing:
|
||||||
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
*** Starting wchar.h
|
/****** <mqueue.h> - Missing include file ******/
|
||||||
Missing: extern wint_t fgetwc();
|
/****** Start of Definitions for file mqueue.h ******/
|
||||||
Missing: extern wchar_t *fgetws();
|
extern int mq_close();
|
||||||
Missing: extern wint_t fputwc();
|
extern int mq_getattr();
|
||||||
Missing: extern int fputws();
|
extern int mq_notify();
|
||||||
Missing: extern wint_t getwc();
|
extern mqd_t mq_open();
|
||||||
Missing: extern wint_t getwchar();
|
extern ssize_t mq_receive();
|
||||||
Missing: extern wint_t putwc();
|
extern int mq_send();
|
||||||
Missing: extern wchar_t putwchar();
|
extern int mq_setattr();
|
||||||
Missing: extern wint_t ungetwc();
|
extern int mq_unlink();
|
||||||
Missing: extern size_t wcsftime();
|
typedef <type> mqd_t;
|
||||||
*** Completed wchar.h
|
struct mq_attr { <members> };
|
||||||
|
struct sigevent { <members> };
|
||||||
|
/****** End of Definitions for file mqueue.h ******/
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Beside this a problem in stdio.h is reported but
|
|
||||||
this is only because the scripts don't understand
|
|
||||||
the sometimes complex constructs in the header.
|
|
||||||
|
|
||||||
POSIX96 Same as UNIX98 [see below].
|
|
||||||
UNIX98 Quite a lot of problems, almost all due to limitations
|
|
||||||
of the Linux kernel (2.1.108):
|
|
||||||
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
*** Starting mqueue.h
|
|
||||||
Missing #include file: mqueue.h
|
|
||||||
*** Completed mqueue.h
|
|
||||||
*** Starting semaphore.h
|
|
||||||
Missing: #define SEM_FAILED (-1)
|
|
||||||
Missing: extern int sem_close();
|
|
||||||
Missing: extern sem_t *sem_open();
|
|
||||||
Missing: extern int sem_unlink();
|
|
||||||
*** Completed semaphore.h
|
|
||||||
*** Starting signal.h
|
|
||||||
Missing: #define SIGSYS (-1)
|
|
||||||
*** Completed signal.h
|
|
||||||
*** Starting sys/mman.h
|
|
||||||
Missing: extern int shm_open();
|
|
||||||
Missing: extern int shm_unlink();
|
|
||||||
*** Completed sys/mman.h
|
|
||||||
*** Starting sys/stat.h
|
|
||||||
Missing: #define S_TYPEISMQ (-1)
|
|
||||||
Missing: #define S_TYPEISSEM (-1)
|
|
||||||
Missing: #define S_TYPEISSHM (-1)
|
|
||||||
*** Completed sys/stat.h
|
|
||||||
*** Starting sys/types.h
|
|
||||||
Missing: typedef <type> clockid_t;
|
|
||||||
Missing: typedef <type> timer_t;
|
|
||||||
*** Completed sys/types.h
|
|
||||||
*** Starting time.h
|
|
||||||
Missing: #define CLOCK_REALTIME (-1)
|
|
||||||
Missing: #define TIMER_ABSTIME (-1)
|
|
||||||
Missing: extern int clock_getres();
|
|
||||||
Missing: extern int clock_gettime();
|
|
||||||
Missing: extern int clock_settime();
|
|
||||||
Missing: struct itimerspec { <members> };
|
|
||||||
Missing: extern int timer_create();
|
|
||||||
Missing: extern int timer_delete();
|
|
||||||
Missing: extern int timer_getoverrun();
|
|
||||||
Missing: extern int timer_gettime();
|
|
||||||
Missing: extern int timer_settime();
|
|
||||||
*** Completed time.h
|
|
||||||
*** Starting unistd.h
|
|
||||||
Missing: #define _POSIX_MESSAGE_PASSING (-1)
|
|
||||||
Missing: #define _POSIX_SEMAPHORES (-1)
|
|
||||||
Missing: #define _POSIX_SHARED_MEMORY_OBJECTS (-1)
|
|
||||||
Missing: #define _POSIX_TIMERS (-1)
|
|
||||||
*** Completed unistd.h
|
|
||||||
*** Starting wchar.h
|
|
||||||
Missing: extern wint_t fgetwc();
|
|
||||||
Missing: extern wchar_t *fgetws();
|
|
||||||
Missing: extern wint_t fputwc();
|
|
||||||
Missing: extern int fputws();
|
|
||||||
Missing: extern int fwide();
|
|
||||||
Missing: extern int fwprintf();
|
|
||||||
Missing: extern int fwscanf();
|
|
||||||
Missing: extern wint_t getwc();
|
|
||||||
Missing: extern wint_t getwchar();
|
|
||||||
Missing: extern wint_t putwc();
|
|
||||||
Missing: extern wchar_t putwchar();
|
|
||||||
Missing: extern int swprintf();
|
|
||||||
Missing: extern int swscanf();
|
|
||||||
Missing: extern wint_t ungetwc();
|
|
||||||
Missing: extern int vfwprintf();
|
|
||||||
Missing: extern int vswprintf();
|
|
||||||
Missing: extern int vwprintf();
|
|
||||||
Missing: extern size_t wcsftime();
|
|
||||||
Missing: extern wchar_t *wcswcs();
|
|
||||||
Missing: extern int wprintf();
|
|
||||||
Missing: extern int wscanf();
|
|
||||||
*** Completed wchar.h
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Only the `wchar.h' problems result from glibc
|
|
||||||
defficiencies since we still don't support wide
|
|
||||||
character I/O.
|
|
||||||
|
|
||||||
[*] Since the scripts are not clever enough for the way gcc handles
|
[*] Since the scripts are not clever enough for the way gcc handles
|
||||||
include files (namely, putting some of them in gcc-local directory) I
|
include files (namely, putting some of them in gcc-local directory) I
|
||||||
copied over the iso646.h, float.h, and stddef.h headers and ignored the
|
copied over the iso646.h, float.h, and stddef.h headers and ignored the
|
||||||
|
|
30
ChangeLog
30
ChangeLog
|
@ -1,8 +1,38 @@
|
||||||
|
2000-08-12 Andreas Jaeger <aj@suse.de>
|
||||||
|
|
||||||
|
* include/features.h (__STDC_ISO_10646__): Define.
|
||||||
|
Reported by Markus Kuhn <Markus.Kuhn@cl.cam.ac.uk>.
|
||||||
|
|
||||||
2000-08-13 Ulrich Drepper <drepper@redhat.com>
|
2000-08-13 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
|
* include/features.h (__USE_ISOC99): Define for _XOPEN_SOURCE >= 600.
|
||||||
|
|
||||||
|
* locale/langinfo.h: Define YESSTR and NOSTR also for XPG4 (but not
|
||||||
|
for revision 6 and up).
|
||||||
|
|
||||||
|
* posix/sys/types.h: Define __need_timer_t and __need_clockid_t before
|
||||||
|
including <time.h>.
|
||||||
|
* time/time.h: Allow __need_timer_t and __need_clockid_t to be defined
|
||||||
|
to get definitions of just these types.
|
||||||
|
|
||||||
|
* signal/signal.h: Define thread signal handling functions also for
|
||||||
|
POSIX95.
|
||||||
|
|
||||||
|
* sysdeps/unix/sysv/linux/bits/types.h: Define thread types also for
|
||||||
|
POSIX95.
|
||||||
|
* sysdeps/unix/sysv/linux/alpha/bits/types.h: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/ia64/bits/types.h: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/mips/bits/types.h: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/sparc/bits/types.h: Likewise.
|
||||||
|
|
||||||
|
* sysvipc/sys/shm.h: Define pid_t for XPG.
|
||||||
|
|
||||||
* posix/unistd.h: Remove setkey, rename, and cuserid prototypes as
|
* posix/unistd.h: Remove setkey, rename, and cuserid prototypes as
|
||||||
they are not anymore required here.
|
they are not anymore required here.
|
||||||
|
|
||||||
|
* wcsmbs/wchar.h: Make the various wide char string and stream
|
||||||
|
functions available for the respective XPG versions.
|
||||||
|
|
||||||
* nss/Makefile: Remove rules to build and distribute nss_db.
|
* nss/Makefile: Remove rules to build and distribute nss_db.
|
||||||
|
|
||||||
* sysdeps/generic/alphasort64.c: Remove unnecessary versioning.
|
* sysdeps/generic/alphasort64.c: Remove unnecessary versioning.
|
||||||
|
|
|
@ -196,6 +196,8 @@
|
||||||
# define _LARGEFILE_SOURCE 1
|
# define _LARGEFILE_SOURCE 1
|
||||||
# if (_XOPEN_SOURCE - 0) >= 600
|
# if (_XOPEN_SOURCE - 0) >= 600
|
||||||
# define __USE_XOPEN2K 1
|
# define __USE_XOPEN2K 1
|
||||||
|
# undef __USE_ISOC99
|
||||||
|
# define __USE_ISOC99 1
|
||||||
# endif
|
# endif
|
||||||
# else
|
# else
|
||||||
# ifdef _XOPEN_SOURCE_EXTENDED
|
# ifdef _XOPEN_SOURCE_EXTENDED
|
||||||
|
@ -240,6 +242,9 @@
|
||||||
#define __STDC_IEC_559__ 1
|
#define __STDC_IEC_559__ 1
|
||||||
#define __STDC_IEC_559_COMPLEX__ 1
|
#define __STDC_IEC_559_COMPLEX__ 1
|
||||||
|
|
||||||
|
/* wchar_t uses Unicode 3.0. */
|
||||||
|
#define __STDC_ISO_10646__ 200001L
|
||||||
|
|
||||||
/* This macro indicates that the installed library is the GNU C Library.
|
/* This macro indicates that the installed library is the GNU C Library.
|
||||||
For historic reasons the value now is 6 and this will stay from now
|
For historic reasons the value now is 6 and this will stay from now
|
||||||
on. The use of this variable is deprecated. Use __GLIBC__ and
|
on. The use of this variable is deprecated. Use __GLIBC__ and
|
||||||
|
|
|
@ -1,3 +1,10 @@
|
||||||
|
2000-08-13 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
|
* sysdeps/unix/sysv/linux/bits/posix_opt.h: Define _POSIX_SEMAPHORES
|
||||||
|
even though the implementation is not quite complete (but it reports
|
||||||
|
it). Define _POSIX_MESSAGE_PASSING to -1.
|
||||||
|
* sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
|
||||||
|
|
||||||
2000-08-12 Andreas Jaeger <aj@suse.de>
|
2000-08-12 Andreas Jaeger <aj@suse.de>
|
||||||
|
|
||||||
* sysdeps/mips/pt-machine.h (testandset): Add .set mips2 for
|
* sysdeps/mips/pt-machine.h (testandset): Add .set mips2 for
|
||||||
|
|
|
@ -89,7 +89,7 @@
|
||||||
#define _POSIX_THREAD_ATTR_STACKADDR 1
|
#define _POSIX_THREAD_ATTR_STACKADDR 1
|
||||||
|
|
||||||
/* We support POSIX.1b semaphores, but only the non-shared form for now. */
|
/* We support POSIX.1b semaphores, but only the non-shared form for now. */
|
||||||
/*#define _POSIX_SEMAPHORES 1 XXX We are not quite there now. */
|
#define _POSIX_SEMAPHORES 1
|
||||||
|
|
||||||
/* Real-time signals are supported. */
|
/* Real-time signals are supported. */
|
||||||
#define _POSIX_REALTIME_SIGNALS 1
|
#define _POSIX_REALTIME_SIGNALS 1
|
||||||
|
@ -134,4 +134,7 @@
|
||||||
/* The barrier functions are available. */
|
/* The barrier functions are available. */
|
||||||
#define _POSIX_BARRIERS 200912L
|
#define _POSIX_BARRIERS 200912L
|
||||||
|
|
||||||
|
/* POSIX message queues are not yet supported. */
|
||||||
|
#define _POSIX_MESSAGE_PASSING (-1)
|
||||||
|
|
||||||
#endif /* posix_opt.h */
|
#endif /* posix_opt.h */
|
||||||
|
|
|
@ -89,7 +89,7 @@
|
||||||
#define _POSIX_THREAD_ATTR_STACKADDR 1
|
#define _POSIX_THREAD_ATTR_STACKADDR 1
|
||||||
|
|
||||||
/* We support POSIX.1b semaphores, but only the non-shared form for now. */
|
/* We support POSIX.1b semaphores, but only the non-shared form for now. */
|
||||||
/*#define _POSIX_SEMAPHORES 1 XXX We are not quite there now. */
|
#define _POSIX_SEMAPHORES 1
|
||||||
|
|
||||||
/* Real-time signals are supported. */
|
/* Real-time signals are supported. */
|
||||||
#define _POSIX_REALTIME_SIGNALS 1
|
#define _POSIX_REALTIME_SIGNALS 1
|
||||||
|
@ -143,4 +143,7 @@
|
||||||
/* The barrier functions are available. */
|
/* The barrier functions are available. */
|
||||||
#define _POSIX_BARRIERS 200912L
|
#define _POSIX_BARRIERS 200912L
|
||||||
|
|
||||||
|
/* POSIX message queues are not yet supported. */
|
||||||
|
#define _POSIX_MESSAGE_PASSING (-1)
|
||||||
|
|
||||||
#endif /* posix_opt.h */
|
#endif /* posix_opt.h */
|
||||||
|
|
|
@ -484,11 +484,11 @@ enum
|
||||||
__NOEXPR, /* Regex matching ``no'' input. */
|
__NOEXPR, /* Regex matching ``no'' input. */
|
||||||
#define NOEXPR __NOEXPR
|
#define NOEXPR __NOEXPR
|
||||||
__YESSTR, /* Output string for ``yes''. */
|
__YESSTR, /* Output string for ``yes''. */
|
||||||
#ifdef __USE_GNU
|
#if defined __USE_GNU || (defined __USE_XOPEN || !defined __USE_XOPEN2K)
|
||||||
# define YESSTR __YESSTR
|
# define YESSTR __YESSTR
|
||||||
#endif
|
#endif
|
||||||
__NOSTR, /* Output string for ``no''. */
|
__NOSTR, /* Output string for ``no''. */
|
||||||
#ifdef __USE_GNU
|
#if defined __USE_GNU || (defined __USE_XOPEN || !defined __USE_XOPEN2K)
|
||||||
# define NOSTR __NOSTR
|
# define NOSTR __NOSTR
|
||||||
#endif
|
#endif
|
||||||
_NL_NUM_LC_MESSAGES,
|
_NL_NUM_LC_MESSAGES,
|
||||||
|
|
|
@ -121,6 +121,8 @@ typedef __key_t key_t;
|
||||||
# define __need_clock_t
|
# define __need_clock_t
|
||||||
#endif
|
#endif
|
||||||
#define __need_time_t
|
#define __need_time_t
|
||||||
|
#define __need_timer_t
|
||||||
|
#define __need_clockid_t
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
|
||||||
#ifdef __USE_XOPEN
|
#ifdef __USE_XOPEN
|
||||||
|
|
|
@ -348,7 +348,9 @@ extern int sigignore (int __sig) __THROW;
|
||||||
|
|
||||||
/* Set the disposition of SIG. */
|
/* Set the disposition of SIG. */
|
||||||
extern __sighandler_t sigset (int __sig, __sighandler_t __disp) __THROW;
|
extern __sighandler_t sigset (int __sig, __sighandler_t __disp) __THROW;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined __USE_POSIX199506 || defined __USE_UNIX98
|
||||||
/* Some of the functions for handling signals in threaded programs must
|
/* Some of the functions for handling signals in threaded programs must
|
||||||
be defined here. */
|
be defined here. */
|
||||||
# include <bits/sigthread.h>
|
# include <bits/sigthread.h>
|
||||||
|
|
|
@ -128,7 +128,7 @@ typedef unsigned int __socklen_t;
|
||||||
|
|
||||||
|
|
||||||
/* Now add the thread types. */
|
/* Now add the thread types. */
|
||||||
#ifdef __USE_UNIX98
|
#if defined __USE_POSIX199506 || defined __USE_UNIX98
|
||||||
# include <bits/pthreadtypes.h>
|
# include <bits/pthreadtypes.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -154,7 +154,7 @@ typedef unsigned int __socklen_t;
|
||||||
|
|
||||||
|
|
||||||
/* Now add the thread types. */
|
/* Now add the thread types. */
|
||||||
#ifdef __USE_UNIX98
|
#if defined __USE_POSIX199506 || defined __USE_UNIX98
|
||||||
# include <bits/pthreadtypes.h>
|
# include <bits/pthreadtypes.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -129,7 +129,7 @@ typedef long int __intptr_t;
|
||||||
typedef unsigned int __socklen_t;
|
typedef unsigned int __socklen_t;
|
||||||
|
|
||||||
/* Now add the thread types. */
|
/* Now add the thread types. */
|
||||||
#ifdef __USE_UNIX98
|
#if defined __USE_POSIX199506 || defined __USE_UNIX98
|
||||||
# include <bits/pthreadtypes.h>
|
# include <bits/pthreadtypes.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -154,7 +154,7 @@ typedef unsigned int __socklen_t;
|
||||||
|
|
||||||
|
|
||||||
/* Now add the thread types. */
|
/* Now add the thread types. */
|
||||||
#ifdef __USE_UNIX98
|
#if defined __USE_POSIX199506 || defined __USE_UNIX98
|
||||||
# include <bits/pthreadtypes.h>
|
# include <bits/pthreadtypes.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -178,7 +178,7 @@ typedef unsigned int __socklen_t;
|
||||||
|
|
||||||
|
|
||||||
/* Now add the thread types. */
|
/* Now add the thread types. */
|
||||||
#ifdef __USE_UNIX98
|
#if defined __USE_POSIX199506 || defined __USE_UNIX98
|
||||||
# include <bits/pthreadtypes.h>
|
# include <bits/pthreadtypes.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -34,6 +34,12 @@
|
||||||
#define __need_time_t
|
#define __need_time_t
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
|
||||||
|
#ifdef __USE_XOPEN
|
||||||
|
# ifndef __pid_t_defined
|
||||||
|
typedef __pid_t pid_t;
|
||||||
|
# define __pid_t_defined
|
||||||
|
# endif
|
||||||
|
#endif /* X/Open */
|
||||||
|
|
||||||
__BEGIN_DECLS
|
__BEGIN_DECLS
|
||||||
|
|
||||||
|
|
28
time/time.h
28
time/time.h
|
@ -73,6 +73,28 @@ typedef __time_t time_t;
|
||||||
#endif /* time_t not defined and <time.h> or need time_t. */
|
#endif /* time_t not defined and <time.h> or need time_t. */
|
||||||
#undef __need_time_t
|
#undef __need_time_t
|
||||||
|
|
||||||
|
#if !defined __clockid_t_defined && (defined _TIME_H || defined __need_clockid_t)
|
||||||
|
# define __clockid_t_defined 1
|
||||||
|
|
||||||
|
# include <bits/types.h>
|
||||||
|
|
||||||
|
/* Clock ID used in clock and timer functions. */
|
||||||
|
typedef __clockid_t clockid_t;
|
||||||
|
|
||||||
|
#endif /* clockid_t not defined and <time.h> or need clockid_t. */
|
||||||
|
#undef __clockid_time_t
|
||||||
|
|
||||||
|
#if !defined __timer_t_defined && (defined _TIME_H || defined __need_timer_t)
|
||||||
|
# define __timer_t_defined 1
|
||||||
|
|
||||||
|
# include <bits/types.h>
|
||||||
|
|
||||||
|
/* Timer ID returned by `timer_create'. */
|
||||||
|
typedef __timer_t timer_t;
|
||||||
|
|
||||||
|
#endif /* timer_t not defined and <time.h> or need timer_t. */
|
||||||
|
#undef __need_timer_t
|
||||||
|
|
||||||
|
|
||||||
#if !defined __timespec_defined && \
|
#if !defined __timespec_defined && \
|
||||||
((defined _TIME_H && defined __USE_POSIX199309) || defined __need_timespec)
|
((defined _TIME_H && defined __USE_POSIX199309) || defined __need_timespec)
|
||||||
|
@ -115,12 +137,6 @@ struct tm
|
||||||
|
|
||||||
|
|
||||||
#ifdef __USE_POSIX199309
|
#ifdef __USE_POSIX199309
|
||||||
/* Clock ID used in clock and timer functions. */
|
|
||||||
typedef __clockid_t clockid_t;
|
|
||||||
|
|
||||||
/* Timer ID returned by `timer_create'. */
|
|
||||||
typedef __timer_t timer_t;
|
|
||||||
|
|
||||||
/* POSIX.1b structure for timer start values and intervals. */
|
/* POSIX.1b structure for timer start values and intervals. */
|
||||||
struct itimerspec
|
struct itimerspec
|
||||||
{
|
{
|
||||||
|
|
|
@ -196,7 +196,7 @@ extern wchar_t *wcspbrk (__const wchar_t *__wcs, __const wchar_t *__accept)
|
||||||
extern wchar_t *wcsstr (__const wchar_t *__haystack, __const wchar_t *__needle)
|
extern wchar_t *wcsstr (__const wchar_t *__haystack, __const wchar_t *__needle)
|
||||||
__THROW;
|
__THROW;
|
||||||
|
|
||||||
#if defined __USE_XOPEN && !defined __USE_UNIX98
|
#ifdef __USE_XOPEN
|
||||||
/* Another name for `wcsstr' from XPG4. */
|
/* Another name for `wcsstr' from XPG4. */
|
||||||
extern wchar_t *wcswcs (__const wchar_t *__haystack, __const wchar_t *__needle)
|
extern wchar_t *wcswcs (__const wchar_t *__haystack, __const wchar_t *__needle)
|
||||||
__THROW;
|
__THROW;
|
||||||
|
@ -334,7 +334,7 @@ extern float wcstof (__const wchar_t *__restrict __nptr,
|
||||||
wchar_t **__restrict __endptr) __THROW;
|
wchar_t **__restrict __endptr) __THROW;
|
||||||
extern long double wcstold (__const wchar_t *__restrict __nptr,
|
extern long double wcstold (__const wchar_t *__restrict __nptr,
|
||||||
wchar_t **__restrict __endptr) __THROW;
|
wchar_t **__restrict __endptr) __THROW;
|
||||||
#endif /* C9x */
|
#endif /* C99 */
|
||||||
|
|
||||||
|
|
||||||
/* Convert initial portion of wide string NPTR to `long int'
|
/* Convert initial portion of wide string NPTR to `long int'
|
||||||
|
@ -526,7 +526,7 @@ extern wchar_t *wcpncpy (wchar_t *__dest, __const wchar_t *__src, size_t __n)
|
||||||
|
|
||||||
|
|
||||||
/* Wide character I/O functions. */
|
/* Wide character I/O functions. */
|
||||||
#ifdef __USE_ISOC99
|
#if defined __USE_ISOC99 || defined __USE_UNIX98
|
||||||
|
|
||||||
/* Select orientation for stream. */
|
/* Select orientation for stream. */
|
||||||
extern int fwide (FILE *__fp, int __mode) __THROW;
|
extern int fwide (FILE *__fp, int __mode) __THROW;
|
||||||
|
@ -572,7 +572,9 @@ extern int wscanf (__const wchar_t *__restrict __format, ...)
|
||||||
extern int swscanf (__const wchar_t *__restrict __s,
|
extern int swscanf (__const wchar_t *__restrict __s,
|
||||||
__const wchar_t *__restrict __format, ...)
|
__const wchar_t *__restrict __format, ...)
|
||||||
__THROW /* __attribute__ ((__format__ (__wscanf__, 2, 3))) */;
|
__THROW /* __attribute__ ((__format__ (__wscanf__, 2, 3))) */;
|
||||||
|
#endif /* Use ISO C99 and Unix98. */
|
||||||
|
|
||||||
|
#ifdef __USE_ISOC99
|
||||||
/* Read formatted input from S into argument list ARG. */
|
/* Read formatted input from S into argument list ARG. */
|
||||||
extern int vfwscanf (FILE *__restrict __s,
|
extern int vfwscanf (FILE *__restrict __s,
|
||||||
__const wchar_t *__restrict __format,
|
__const wchar_t *__restrict __format,
|
||||||
|
@ -587,6 +589,7 @@ extern int vswscanf (__const wchar_t *__restrict __s,
|
||||||
__const wchar_t *__restrict __format,
|
__const wchar_t *__restrict __format,
|
||||||
__gnuc_va_list __arg)
|
__gnuc_va_list __arg)
|
||||||
__THROW /* __attribute__ ((__format__ (__wscanf__, 2, 0))) */;
|
__THROW /* __attribute__ ((__format__ (__wscanf__, 2, 0))) */;
|
||||||
|
#endif /* Use ISO C99. */
|
||||||
|
|
||||||
|
|
||||||
/* Read a character from STREAM. */
|
/* Read a character from STREAM. */
|
||||||
|
@ -596,16 +599,6 @@ extern wint_t getwc (FILE *__stream);
|
||||||
/* Read a character from stdin. */
|
/* Read a character from stdin. */
|
||||||
extern wint_t getwchar (void);
|
extern wint_t getwchar (void);
|
||||||
|
|
||||||
#ifdef __USE_GNU
|
|
||||||
/* These are defined to be equivalent to the `char' functions defined
|
|
||||||
in POSIX.1:1996. */
|
|
||||||
extern wint_t getwc_unlocked (FILE *__stream);
|
|
||||||
extern wint_t getwchar_unlocked (void);
|
|
||||||
|
|
||||||
/* This is the wide character version of a GNU extension. */
|
|
||||||
extern wint_t fgetwc_unlocked (FILE *__stream);
|
|
||||||
#endif /* Use POSIX or MISC. */
|
|
||||||
|
|
||||||
|
|
||||||
/* Write a character to STREAM. */
|
/* Write a character to STREAM. */
|
||||||
extern wint_t fputwc (wchar_t __wc, FILE *__stream);
|
extern wint_t fputwc (wchar_t __wc, FILE *__stream);
|
||||||
|
@ -614,7 +607,30 @@ extern wint_t putwc (wchar_t __wc, FILE *__stream);
|
||||||
/* Write a character to stdout. */
|
/* Write a character to stdout. */
|
||||||
extern wint_t putwchar (wchar_t __wc);
|
extern wint_t putwchar (wchar_t __wc);
|
||||||
|
|
||||||
|
|
||||||
|
/* Get a newline-terminated wide character string of finite length
|
||||||
|
from STREAM. */
|
||||||
|
extern wchar_t *fgetws (wchar_t *__restrict __ws, int __n,
|
||||||
|
FILE *__restrict __stream);
|
||||||
|
|
||||||
|
/* Write a string to STREAM. */
|
||||||
|
extern int fputws (__const wchar_t *__restrict __ws,
|
||||||
|
FILE *__restrict __stream);
|
||||||
|
|
||||||
|
|
||||||
|
/* Push a character back onto the input buffer of STREAM. */
|
||||||
|
extern wint_t ungetwc (wint_t __wc, FILE *__stream);
|
||||||
|
|
||||||
|
|
||||||
#ifdef __USE_GNU
|
#ifdef __USE_GNU
|
||||||
|
/* These are defined to be equivalent to the `char' functions defined
|
||||||
|
in POSIX.1:1996. */
|
||||||
|
extern wint_t getwc_unlocked (FILE *__stream);
|
||||||
|
extern wint_t getwchar_unlocked (void);
|
||||||
|
|
||||||
|
/* This is the wide character version of a GNU extension. */
|
||||||
|
extern wint_t fgetwc_unlocked (FILE *__stream);
|
||||||
|
|
||||||
/* Faster version when locking is not necessary. */
|
/* Faster version when locking is not necessary. */
|
||||||
extern wint_t fputwc_unlocked (wchar_t __wc, FILE *__stream);
|
extern wint_t fputwc_unlocked (wchar_t __wc, FILE *__stream);
|
||||||
|
|
||||||
|
@ -622,43 +638,24 @@ extern wint_t fputwc_unlocked (wchar_t __wc, FILE *__stream);
|
||||||
in POSIX.1:1996. */
|
in POSIX.1:1996. */
|
||||||
extern wint_t putwc_unlocked (wchar_t __wc, FILE *__stream);
|
extern wint_t putwc_unlocked (wchar_t __wc, FILE *__stream);
|
||||||
extern wint_t putwchar_unlocked (wchar_t __wc);
|
extern wint_t putwchar_unlocked (wchar_t __wc);
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/* Get a newline-terminated wide character string of finite length
|
|
||||||
from STREAM. */
|
|
||||||
extern wchar_t *fgetws (wchar_t *__restrict __ws, int __n,
|
|
||||||
FILE *__restrict __stream);
|
|
||||||
|
|
||||||
#ifdef __USE_GNU
|
|
||||||
/* This function does the same as `fgetws' but does not lock the stream. */
|
/* This function does the same as `fgetws' but does not lock the stream. */
|
||||||
extern wchar_t *fgetws_unlocked (wchar_t *__restrict __ws, int __n,
|
extern wchar_t *fgetws_unlocked (wchar_t *__restrict __ws, int __n,
|
||||||
FILE *__restrict __stream);
|
FILE *__restrict __stream);
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/* Write a string to STREAM. */
|
|
||||||
extern int fputws (__const wchar_t *__restrict __ws,
|
|
||||||
FILE *__restrict __stream);
|
|
||||||
|
|
||||||
#ifdef __USE_GNU
|
|
||||||
/* This function does the same as `fputws' but does not lock the stream. */
|
/* This function does the same as `fputws' but does not lock the stream. */
|
||||||
extern int fputws_unlocked (__const wchar_t *__restrict __ws,
|
extern int fputws_unlocked (__const wchar_t *__restrict __ws,
|
||||||
FILE *__restrict __stream);
|
FILE *__restrict __stream);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* Push a character back onto the input buffer of STREAM. */
|
|
||||||
extern wint_t ungetwc (wint_t __wc, FILE *__stream);
|
|
||||||
|
|
||||||
|
|
||||||
/* Format TP into S according to FORMAT.
|
/* Format TP into S according to FORMAT.
|
||||||
Write no more than MAXSIZE wide characters and return the number
|
Write no more than MAXSIZE wide characters and return the number
|
||||||
of wide characters written, or 0 if it would exceed MAXSIZE. */
|
of wide characters written, or 0 if it would exceed MAXSIZE. */
|
||||||
extern size_t wcsftime (wchar_t *__restrict __s, size_t __maxsize,
|
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);
|
__const struct tm *__restrict __tp);
|
||||||
#endif /* Use ISO C9x. */
|
|
||||||
|
|
||||||
/* 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
|
||||||
|
|
Loading…
Reference in New Issue