V9/cmd/emacs/emacs_io.h


/* EMACS_MODES: c !fill */

#ifdef OWNER
#define EXTERN
#else
#define EXTERN extern
#endif

#ifdef pdp11
#define BUFSIZ  512
#else
#define BUFSIZ 1024
#endif
extern  struct  iobuf {
        int     _cnt;
        char    *_ptr;
        int     _frn;
        int     _flags;
        char    _buf[BUFSIZ];
};

/* values for _flags */

#define _OUTPUT 01
#define _INPUT 02
#define _DEAD 04
#define _ERROR 010

#ifdef v8
#undef NULL
#endif
#define NULL    0
#define FILE    struct iobuf
#define EOF     (-1)

EXTERN int donttime;
EXTERN struct iobuf _stdout;
EXTERN int no_io;			/* Flag to force off I/O */

EXTERN int outproc;			/* Process to send output to */
EXTERN int inproc;			/* Process to receive input from */
EXTERN int procbuf;			/* Buffer coupled to this. */
EXTERN int procpid;

/* input buffer */

#define INLOOK 1


EXTERN char *inbuf;
EXTERN char *inptr;
EXTERN int incnt;
EXTERN int infrn;
EXTERN int inlev;

/* INPUT BUFFER STACK */

#define NINP 32                         /* levels of calls */
EXTERN char _inbuf[NINP] [INLOOK];
EXTERN int _incnt[NINP];
EXTERN char *_inptr[NINP];
EXTERN int _infrn[NINP];

#define stdout  (&_stdout)
#define putc(x,p)       p->_buf[p->_cnt++] = (unsigned)(x);if (p->_cnt>=BUFSIZ) mflush(p)
#define putchar(x)      putc(x,stdout)
#define getc(p)         ((--((p)->_cnt)>=0)? *((p)->_ptr++)&0377:filbuf(p))
#define MOREIN  (incnt)
#define Mgetchar(x) ((*inptr++) &0377)
/* function definitions */

EXTERN FILE *xopen();
EXTERN FILE *fdopen();
EXTERN int filbuf();