-rw-r--r-- 788 cdb-20251021/inbuf.h raw
#ifndef inbuf_h #define inbuf_h #include "num.h" extern num inbuf_unixread(num,char *,num); typedef struct inbuf { char *x; num p; num n; num fd; num (*op)(num,char *,num); } inbuf; #define INBUF_INIT(op,fd,buf,len) { (buf), 0, (len), (fd), (op) } #define INBUF_SIZE 8192 extern void inbuf_init(inbuf *,num (*)(num,char *,num),num,char *,num); extern num inbuf_get(inbuf *,char *,num); extern num inbuf_feed(inbuf *); extern char *inbuf_peek(inbuf *); extern void inbuf_seek(inbuf *,num); #define inbuf_PEEK(s) ( (s)->x + (s)->n ) #define inbuf_SEEK(s,len) ( ( (s)->p -= (len) ) , ( (s)->n += (len) ) ) #define inbuf_GETC(s,c) \ ( ((s)->p > 0) \ ? ( *(c) = (s)->x[(s)->n], inbuf_SEEK((s),1), 1 ) \ : inbuf_get((s),(c),1) \ ) extern inbuf *inbuf_0; #endif