(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:
Paul Eggert
2001-09-25 18:17:36 +00:00
parent 02a275c6ac
commit 1ad624bbbc

View File

@@ -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