Print this page
oops!
getdelim.3c should list p1003.1-2008.
more ifdef cleanups, expose getline and getdelim

@@ -213,23 +213,15 @@
 #endif
 
 /* large file compilation environment setup */
 #if !defined(_LP64) && _FILE_OFFSET_BITS == 64
 #if !defined(__PRAGMA_REDEFINE_EXTNAME)
-#if defined(__STDC__)
 extern FILE     *fopen64(const char *, const char *);
 extern FILE     *freopen64(const char *, const char *, FILE *);
 extern FILE     *tmpfile64(void);
 extern int      fgetpos64(FILE *, fpos_t *);
 extern int      fsetpos64(FILE *, const fpos_t *);
-#else   /* defined(__STDC__) */
-extern FILE     *fopen64();
-extern FILE     *freopen64();
-extern FILE     *tmpfile64();
-extern int      fgetpos64();
-extern int      fsetpos64();
-#endif  /* defined(__STDC__) */
 #define fopen                   fopen64
 #define freopen                 freopen64
 #define tmpfile                 tmpfile64
 #define fgetpos                 fgetpos64
 #define fsetpos                 fsetpos64

@@ -267,88 +259,79 @@
 #else
 typedef int     ssize_t;        /* (historical version) */
 #endif
 #endif  /* !_SSIZE_T */
 
-#if defined(__STDC__)
-
-#if defined(__EXTENSIONS__) || \
-        (!defined(_STRICT_STDC) && !defined(__XOPEN_OR_POSIX)) || \
-        defined(_REENTRANT)
+#if defined(_REENTRANT) || !defined(_STRICT_SYMBOLS)
 extern char     *tmpnam_r(char *);
 #endif
 
-#if defined(__EXTENSIONS__) || \
-        (!defined(_STRICT_STDC) && !defined(__XOPEN_OR_POSIX))
+#if !defined(_STRICT_SYMBOLS)
 extern int fcloseall(void);
 extern void setbuffer(FILE *, char *, size_t);
 extern int setlinebuf(FILE *);
 /* PRINTFLIKE2 */
 extern int asprintf(char **, const char *, ...);
 /* PRINTFLIKE2 */
 extern int vasprintf(char **, const char *, __va_list);
 #endif
 
-#if defined(__EXTENSIONS__) || \
-        (!defined(_STRICT_STDC) && !defined(__XOPEN_OR_POSIX))
-        /* || defined(_XPG7) */
+#if defined(_XPG7) || !defined(_STRICT_SYMBOLS)
 extern ssize_t getdelim(char **_RESTRICT_KYWD, size_t *_RESTRICT_KYWD,
         int, FILE *_RESTRICT_KYWD);
 extern ssize_t getline(char **_RESTRICT_KYWD, size_t *_RESTRICT_KYWD,
         FILE *_RESTRICT_KYWD);
-#endif  /* __EXTENSIONS__ ... */
+#endif
 
 /*
  * The following are known to POSIX and XOPEN, but not to ANSI-C.
  */
-#if defined(__EXTENSIONS__) || \
-        !defined(_STRICT_STDC) || defined(__XOPEN_OR_POSIX)
-
+#if defined(__XOPEN_OR_POSIX) || !defined(_STRICT_SYMBOLS)
 extern FILE     *fdopen(int, const char *);
 extern char     *ctermid(char *);
 extern int      fileno(FILE *);
+#endif
 
-#endif  /* defined(__EXTENSIONS__) || !defined(_STRICT_STDC) ... */
-
 /*
- * The following are known to POSIX.1c, but not to ANSI-C or XOPEN.
+ * The following are known to POSIX.1c, but not to ANSI-C or older XOPEN.
  */
-#if defined(__EXTENSIONS__) || defined(_REENTRANT) || \
+#if defined(_REENTRANT) || !defined(_STRICT_SYMBOLS) || \
         (_POSIX_C_SOURCE - 0 >= 199506L)
 extern void     flockfile(FILE *);
 extern int      ftrylockfile(FILE *);
 extern void     funlockfile(FILE *);
 extern int      getc_unlocked(FILE *);
 extern int      getchar_unlocked(void);
 extern int      putc_unlocked(int, FILE *);
 extern int      putchar_unlocked(int);
+#endif
 
-#endif  /* defined(__EXTENSIONS__) || defined(_REENTRANT).. */
-
 /*
  * The following are known to XOPEN, but not to ANSI-C or POSIX.
  */
-#if defined(__EXTENSIONS__) || !defined(_STRICT_STDC) || \
-        defined(_XOPEN_SOURCE)
+#if defined(_XOPEN_SOURCE) || !defined(_STRICT_SYMBOLS)
+
 extern FILE     *popen(const char *, const char *);
 extern char     *tempnam(const char *, const char *);
 extern int      pclose(FILE *);
+
 #if !defined(_XOPEN_SOURCE)
+/* XOPEN puts this in stdlib.h */
 extern int      getsubopt(char **, char *const *, char **);
-#endif /* !defined(_XOPEN_SOURCE) */
+#endif
 
 /* Marked LEGACY in SUSv2 and removed in SUSv3 */
-#if !defined(_XPG6) || defined(__EXTENSIONS__)
+#if !defined(_STRICT_XPG6)
 extern char     *cuserid(char *);
 extern int      getopt(int, char *const *, const char *);
 extern char     *optarg;
 extern int      optind, opterr, optopt;
 extern int      getw(FILE *);
 extern int      putw(int, FILE *);
-#endif /* !defined(_XPG6) || defined(__EXTENSIONS__) */
+#endif
 
-#endif  /* defined(__EXTENSIONS__) || !defined(_STRICT_STDC) ... */
+#endif  /* defined(_XOPEN_SOURCE) || !defined(_STRICT_SYMBOLS) */
 
 /*
  * The following are defined as part of the Large File Summit interfaces.
  */
 #if defined(_LARGEFILE_SOURCE) || defined(_XPG5)

@@ -369,118 +352,26 @@
 extern int      fsetpos64(FILE *, const fpos64_t *);
 extern int      fseeko64(FILE *, off64_t, int);
 extern off64_t  ftello64(FILE *);
 #endif
 
-#else   /* !defined __STDC__ */
-
-#ifndef _LP64
-#define _bufend(p)      ((fileno(p) < _NFILE) ? _bufendtab[fileno(p)] : \
-                        (unsigned char *)_realbufend(p))
-#define _bufsiz(p)      (_bufend(p) - (p)->_base)
-#endif  /*      _LP64   */
-
-#if defined(__EXTENSIONS__) || !defined(__XOPEN_OR_POSIX) || \
-        defined(_REENTRANT)
-extern char     *tmpnam_r();
-#endif
-
-#if defined(__EXTENSIONS__) || !defined(__XOPEN_OR_POSIX)
-extern int fcloseall();
-extern void setbuffer();
-extern int setlinebuf();
-extern int asprintf();
-extern int vasprintf();
-#endif
-
-#if defined(__EXTENSIONS__) || !defined(__XOPEN_OR_POSIX)
-        /* || defined(_XPG7) */
-extern ssize_t getdelim();
-extern ssize_t getline();
-#endif  /* __EXTENSIONS__ ... */
-
-#if defined(__EXTENSIONS__) || defined(__XOPEN_OR_POSIX)
-extern FILE     *fdopen();
-extern char     *ctermid();
-extern int      fileno();
-#endif  /* defined(__EXTENSIONS__) || defined(__XOPEN_OR_POSIX) */
-
-#if defined(__EXTENSIONS__) || defined(_REENTRANT) || \
-            (_POSIX_C_SOURCE - 0 >= 199506L)
-extern void     flockfile();
-extern int      ftrylockfile();
-extern void     funlockfile();
-extern int      getc_unlocked();
-extern int      getchar_unlocked();
-extern int      putc_unlocked();
-extern int      putchar_unlocked();
-#endif  /* defined(__EXTENSIONS__) || defined(_REENTRANT).. */
-
-#if defined(__EXTENSIONS__) || defined(_XOPEN_SOURCE)
-extern FILE     *popen();
-extern char     *tempnam();
-extern int      pclose();
-
-#if !defined(_XOPEN_SOURCE)
-extern int      getsubopt();
-#endif /* !defined(_XOPEN_SOURCE) */
-
-#if !defined(_XPG6) || defined(__EXTENSIONS__)
-extern char     *cuserid();
-extern int      getopt();
-extern char     *optarg;
-extern int      optind, opterr, optopt;
-extern int      getw();
-extern int      putw();
-#endif /* !defined(_XPG6) || defined(__EXTENSIONS__) */
-
-#endif  /* defined(__EXTENSIONS__) || defined(_XOPEN_SOURCE) */
-
-#if defined(_LARGEFILE_SOURCE) || defined(_XPG5)
-extern int      fseeko();
-extern off_t    ftello();
-#endif
-
-#if defined(_LARGEFILE64_SOURCE) && !((_FILE_OFFSET_BITS == 64) && \
-            !defined(__PRAGMA_REDEFINE_EXTNAME))
-extern FILE     *fopen64();
-extern FILE     *freopen64();
-extern FILE     *tmpfile64();
-extern int      fgetpos64();
-extern int      fsetpos64();
-extern int      fseeko64();
-extern off64_t  ftello64();
-#endif
-
-#endif  /* __STDC__ */
-
 #if !defined(__lint)
 
-#if defined(__EXTENSIONS__) || defined(_REENTRANT) || \
+#if defined(_REENTRANT) || !defined(_STRICT_SYMBOLS) || \
             (_POSIX_C_SOURCE - 0 >= 199506L)
 #ifndef _LP64
-#ifdef  __STDC__
 #define getc_unlocked(p)        (--(p)->_cnt < 0 \
                                         ? __filbuf(p) \
                                         : (int)*(p)->_ptr++)
 #define putc_unlocked(x, p)     (--(p)->_cnt < 0 \
                                         ? __flsbuf((x), (p)) \
                                         : (int)(*(p)->_ptr++ = \
                                         (unsigned char) (x)))
-#else
-#define getc_unlocked(p)        (--(p)->_cnt < 0 \
-                                        ? _filbuf(p) \
-                                        : (int)*(p)->_ptr++)
-#define putc_unlocked(x, p)     (--(p)->_cnt < 0 \
-                                        ? _flsbuf((x), (p)) \
-                                        : (int)(*(p)->_ptr++ = \
-                                        (unsigned char) (x)))
-#endif  /* __STDC__ */
 #endif  /* _LP64 */
 #define getchar_unlocked()      getc_unlocked(stdin)
 #define putchar_unlocked(x)     putc_unlocked((x), stdout)
-#endif  /* defined(__EXTENSIONS__) || defined(_REENTRANT).. */
+#endif  /* defined(_REENTRANT).. */
 
 #endif  /* !defined(__lint) */
 
 #ifdef  __cplusplus
 }