(EILSEQ): Include <time.h> and <wchar.h> if <errno.h> does not define
EILSEQ, because BSD/OS 4.1 defines EILSEQ in <wchar.h>, which requires <time.h>. Define a replacement EILSEQ to be ENOENT, not EINVAL, since callers may want to distinguish EINVAL and EILSEQ.
This commit is contained in:
@@ -37,8 +37,25 @@
|
||||
#ifndef errno
|
||||
extern int errno;
|
||||
#endif
|
||||
|
||||
/* Define EILSEQ and ENOTSUP as portably as possible. Some
|
||||
nonstandard systems, like SunOS 4, don't have EILSEQ. Others, like
|
||||
BSD/OS 4.1, define it in <wchar.h>. Callers that use EILSEQ and/or
|
||||
ENOTSUP and that want to be portable to these nonstandard systems
|
||||
should mimic the following includes and defines. */
|
||||
|
||||
/* BSD/OS 4.1 wchar.h defines EILSEQ, but it requires FILE (defined in
|
||||
<stdio.h>, included above) and struct tm (defined in <time.h>) to
|
||||
be declared. */
|
||||
#if HAVE_WCHAR_H && ! defined EILSEQ
|
||||
# include <time.h>
|
||||
# include <wchar.h>
|
||||
#endif
|
||||
|
||||
/* Do not define EILSEQ to be EINVAL, since callers may want to
|
||||
distinguish EINVAL and EILSEQ. */
|
||||
#ifndef EILSEQ
|
||||
# define EILSEQ EINVAL
|
||||
# define EILSEQ ENOENT
|
||||
#endif
|
||||
#ifndef ENOTSUP
|
||||
# define ENOTSUP EINVAL
|
||||
|
||||
Reference in New Issue
Block a user