|
|
1.1 ! root 1: /* ! 2: #ifdef mc68020 ! 3: #define GNOT ! 4: #endif ! 5: */ ! 6: ! 7: #define FIOBSIZE 4096 ! 8: ! 9: typedef struct Fbuffer ! 10: { ! 11: unsigned char *next; /* next char to be used */ ! 12: unsigned char *end; /* first invalid char */ ! 13: unsigned char *lnext; /* previous value of next */ ! 14: char rdlast; /* true if last input was rdline */ ! 15: long offset; /* seek of next char to be read */ ! 16: unsigned char buf[FIOBSIZE]; ! 17: } Fbuffer; ! 18: extern Fbuffer *Ffb[]; ! 19: ! 20: #define FIORESET(f) ((f)->next=(f)->lnext=(f)->end=(f)->buf, (f)->rdlast=0) ! 21: #define FIOSET(f, fd) if((f=Ffb[fd&=0x7f]) == 0){Finit(fd,(char *)0);f=Ffb[fd];} ! 22: /* FIOLINELEN is length of last input */ ! 23: #define FIOLINELEN(fd) (((int)(Ffb[fd]->next - Ffb[fd]->lnext))-1) ! 24: /* FIOSEEK is lseek of next char to be processed */ ! 25: #define FIOSEEK(fd) (Ffb[fd]->offset - (Ffb[fd]->end - Ffb[fd]->next)) ! 26: ! 27: extern void Finit(); ! 28: extern char *Frdline(); ! 29: extern void Fundo(); ! 30: extern int Fgetc(); ! 31: extern long Fread(); ! 32: extern long Fseek(); ! 33: ! 34: /* COUNT is the type of counts to things like read, write, memcpy etc */ ! 35: /* ! 36: #ifdef GNOT ! 37: #define COUNT long ! 38: #define FIOMALLOC(n) sbrk(n) ! 39: #define SEEK(a,b,c) seek(a,b,c) ! 40: #else ! 41: */ ! 42: #define COUNT int ! 43: #define FIOMALLOC(n) malloc(n) ! 44: #define SEEK(a,b,c) lseek(a,b,c) ! 45: /*#endif*/ ! 46: extern COUNT read(), write();
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.