|
|
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.