#ifndef DL_STDIO #define DL_STDIO #define _BUFSIZE 512 #define BUFSIZ _BUFSIZE /* Unix compatable */ #define _NFILE 20 typedef struct _iobuf { char *_ptr; int _cnt; char *_base; int _flag; int _fd; int _bufsize; /* buffer size for this file */ } FILE; extern FILE _iob[_NFILE]; #define stdin (&_iob[0]) #define stdout (&_iob[1]) #define stderr (&_iob[2]) #define STDIN 0 #define STDOUT 1 #define STDERR STDOUT #define STDAUX 2 #define STDPRT 3 #define _READ 01 #define _WRITE 02 #define _APPEND 04 #define _UNBUF 010 #define _BIGBUF 020 #define _EOF 040 #define _ERR 0100 #define _DIRTY 0200 /* buffer was changed */ #define _LINBUF 0400 #define _IFLUSH 01000 /* (ONLY STDIN) Flush stdout when filling */ #define _RDWR 02000 #define NULL 0L /* must be long since it can be passed as a parameter */ #define EOF (-1) #define getc(p) (--(p)->_cnt >= 0 ? *(p)->_ptr++ & 0377 : _fillbuf(p)) #define getchar() getc(stdin) #define putc(x,p) (--(p)->_cnt >= 0 ? (*(p)->_ptr++ = (x)) & 0377 : \ _flushbuf((x),p)) #define putchar(x) putc(x,stdout) #define feof(p) ((p)->_flag&_EOF) #define ferror(p) ((p)->_flag&_ERR) #define clearerr(p) ((p)->_flag &= ~(_ERR | _EOF)) #define fileno(p) ((p)->_fd) #define rand() (int)(_seed = _seed * 6907 + 130253) #define srand(x) _seed = x; extern FILE *fopen(), *fdopen(), *freopen(); extern long ftell(); extern char *gets(); extern char *fgets(); extern long _seed; /* * These are not normally part of stdio.h, but are included here to help * reduce errors made by beginning programmers. */ extern char *sprintf(), *malloc(), *lmalloc(), *calloc(), *lcalloc(); extern char *alloca(), *realloc(), *lrealloc(); extern long labs(), lseek(); extern int errno; /* defined in exit.c */ typedef long jmp_buf[10]; #endif /* DL_STDIO */ #ifndef peekb #define peekb(cp) (*((char *)cp)) #define peekw(wp) (*((int *)wp)) #define peekl(lp) (*((long *)lp)) #define pokeb(bp,b) (*((char *)cp)=c) #define pokew(wp,l) (*((int *)wp)=l) #define pokel(lp,l) (*((long *)lp)=l) #endif