/* $Revision: 1.2 $
**
** Quick I/O package -- optimized for reading through a file.
*/
/*
** State for a quick open file.
*/
typedef struct _QIOSTATE {
int fd;
int Size;
int flag;
int Length;
char *Buffer;
char *End;
char *Start;
long Count;
} QIOSTATE;
/* A reasonable buffersize to use. */
#define QIO_BUFFER 8192
/* Values for QIOstate.flag */
#define QIO_ok 0
#define QIO_error 1
#define QIO_long 2
#define QIOerror(qp) ((qp)->flag > 0)
#define QIOtoolong(qp) ((qp)->flag == QIO_long)
#define QIOtell(qp) ((qp)->Count - ((qp)->End - (qp)->Start))
#define QIOlength(qp) ((qp)->Length)
#define QIOfileno(qp) ((qp)->fd)
extern char *QIOread();
extern QIOSTATE *QIOopen();
extern QIOSTATE *QIOfdopen();
extern void QIOclose();
extern int QIOrewind();