Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. =================================================================== RCS file: /ftp/cvs/cvsroot/src/include/stdio.h,v rcsdiff: /ftp/cvs/cvsroot/src/include/stdio.h,v: warning: Unknown phrases like `commitid ...;' are present. retrieving revision 1.18 retrieving revision 1.25 diff -u -p -r1.18 -r1.25 --- src/include/stdio.h 1996/04/25 18:29:21 1.18 +++ src/include/stdio.h 1998/07/27 13:35:00 1.25 @@ -1,8 +1,8 @@ -/* $NetBSD: stdio.h,v 1.18 1996/04/25 18:29:21 jtc Exp $ */ +/* $NetBSD: stdio.h,v 1.25 1998/07/27 13:35:00 mycroft Exp $ */ /*- - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. + * Copyright (c) 1990, 1993 + * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Chris Torek. @@ -35,7 +35,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * @(#)stdio.h 5.17 (Berkeley) 6/3/91 + * @(#)stdio.h 8.5 (Berkeley) 4/29/95 */ #ifndef _STDIO_H_ @@ -46,6 +46,7 @@ #endif #include +#include #include #ifdef _BSD_SIZE_T_ @@ -107,6 +108,8 @@ struct __sbuf { * that does not match the previous one in _bf. When this happens, * _ub._base becomes non-nil (i.e., a stream has ungetc() data iff * _ub._base!=NULL) and _up and _ur save the current values of _p and _r. + * + * NB: see WARNING above before changing the layout of this structure! */ typedef struct __sFILE { unsigned char *_p; /* current position in (some) buffer */ @@ -178,10 +181,11 @@ __END_DECLS #define EOF (-1) /* - * FOPEN_MAX is a minimum maximum, and should be the number of descriptors - * that the kernel can provide without allocation of a resource that can - * fail without the process sleeping. Do not use this for anything. + * FOPEN_MAX is a minimum maximum, and is the number of streams that + * stdio can provide without attempting to allocate further resources + * (which could fail). Do not use this for anything. */ + /* must be == _POSIX_STREAM_MAX */ #define FOPEN_MAX 20 /* must be <= OPEN_MAX */ #define FILENAME_MAX 1024 /* must be <= PATH_MAX */ @@ -192,6 +196,7 @@ __END_DECLS #define L_tmpnam 1024 /* XXX must be == PATH_MAX */ #define TMP_MAX 308915776 +/* Always ensure that these are consistent with and ! */ #ifndef SEEK_SET #define SEEK_SET 0 /* set file offset to offset */ #endif @@ -231,26 +236,34 @@ long ftell __P((FILE *)); size_t fwrite __P((const void *, size_t, size_t, FILE *)); int getc __P((FILE *)); int getchar __P((void)); -char *gets __P((char *)); void perror __P((const char *)); int printf __P((const char *, ...)); int putc __P((int, FILE *)); int putchar __P((int)); int puts __P((const char *)); int remove __P((const char *)); -int rename __P((const char *, const char *)); void rewind __P((FILE *)); int scanf __P((const char *, ...)); void setbuf __P((FILE *, char *)); int setvbuf __P((FILE *, char *, int, size_t)); -int sprintf __P((char *, const char *, ...)); int sscanf __P((const char *, const char *, ...)); FILE *tmpfile __P((void)); -char *tmpnam __P((char *)); int ungetc __P((int, FILE *)); int vfprintf __P((FILE *, const char *, _BSD_VA_LIST_)); int vprintf __P((const char *, _BSD_VA_LIST_)); + +#ifndef __AUDIT__ +char *gets __P((char *)); +int sprintf __P((char *, const char *, ...)); +char *tmpnam __P((char *)); int vsprintf __P((char *, const char *, _BSD_VA_LIST_)); +#endif + +#if defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE) +int rename __P((const char *, const char *)) __RENAME(__posix_rename); +#else +int rename __P((const char *, const char *)); +#endif __END_DECLS /* @@ -268,24 +281,56 @@ int fileno __P((FILE *)); __END_DECLS #endif /* not ANSI */ +#if 1 /* _POSIX_C_SOURCE >= 199506L */ +extern void flockfile __P((FILE *)); +extern int ftrylockfile __P((FILE *)); +extern void funlockfile __P((FILE *)); +extern int getc_unlocked __P((FILE *)); +extern int getchar_unlocked __P((void)); +extern int putc_unlocked __P((int, FILE *)); +extern int putchar_unlocked __P((int)); +#endif + /* - * Routines that are purely local. + * Functions defined in POSIX 1003.2 and XPGn or later. */ -#if !defined (_ANSI_SOURCE) && !defined(_POSIX_SOURCE) +#if !defined(_ANSI_SOURCE) && !defined(_POSIX_C_SOURCE) || \ + (_POSIX_C_SOURCE - 0) >= 2 || defined(_XOPEN_SOURCE) __BEGIN_DECLS -char *fgetln __P((FILE *, size_t *)); -int fpurge __P((FILE *)); -int getw __P((FILE *)); int pclose __P((FILE *)); FILE *popen __P((const char *, const char *)); +__END_DECLS +#endif + +/* + * Functions defined in XPG4.2. + */ +#if !defined(_ANSI_SOURCE) && !defined(_POSIX_C_SOURCE) || \ + defined(_XOPEN_SOURCE) +__BEGIN_DECLS +int getw __P((FILE *)); int putw __P((int, FILE *)); -void setbuffer __P((FILE *, char *, int)); -int setlinebuf __P((FILE *)); -char *tempnam __P((const char *, const char *)); int snprintf __P((char *, size_t, const char *, ...)) __attribute__((format (printf, 3, 4))); int vsnprintf __P((char *, size_t, const char *, _BSD_VA_LIST_)) __attribute__((format (printf, 3, 0))); + +#ifndef __AUDIT__ +char *tempnam __P((const char *, const char *)); +#endif +__END_DECLS +#endif + +/* + * Routines that are purely local. + */ +#if !defined(_ANSI_SOURCE) && !defined(_POSIX_C_SOURCE) && \ + !defined(_XOPEN_SOURCE) +__BEGIN_DECLS +char *fgetln __P((FILE *, size_t *)); +int fpurge __P((FILE *)); +void setbuffer __P((FILE *, char *, int)); +int setlinebuf __P((FILE *)); int vscanf __P((const char *, _BSD_VA_LIST_)) __attribute__((format (scanf, 1, 0))); int vsscanf __P((const char *, const char *, _BSD_VA_LIST_)) @@ -353,19 +398,28 @@ static __inline int __sputc(int _c, FILE #define __sclearerr(p) ((void)((p)->_flags &= ~(__SERR|__SEOF))) #define __sfileno(p) ((p)->_file) +#ifndef lint +#ifndef _REENTRANT #define feof(p) __sfeof(p) #define ferror(p) __sferror(p) #define clearerr(p) __sclearerr(p) -#ifndef _ANSI_SOURCE -#define fileno(p) __sfileno(p) -#endif - -#ifndef lint #define getc(fp) __sgetc(fp) #define putc(x, fp) __sputc(x, fp) +#endif /* _REENTRANT */ #endif /* lint */ #define getchar() getc(stdin) #define putchar(x) putc(x, stdout) + +#ifndef _ANSI_SOURCE +#define fileno(p) __sfileno(p) + +#define getc_unlocked(fp) __sgetc(fp) +#define putc_unlocked(x, fp) __sputc(x, fp) + +#define getchar_unlocked() getc_unlocked(stdin) +#define putchar_unlocked(x) putc_unlocked(x, stdout) +#endif /* _ANSI_SOURCE */ + #endif /* _STDIO_H_ */