|
|
1.1 ! root 1: #ifndef SRBHDR ! 2: #include "defs.h" ! 3: #endif ! 4: ! 5: ! 6: STRUCT fileblk FILEBLK; ! 7: STRUCT filehdr FILEHDR; ! 8: STRUCT fileblk *FILE; ! 9: #define NIL 0 ! 10: ! 11: /* the following nonsense is required ! 12: * because casts turn an Lvalue ! 13: * into an Rvalue so two cheats ! 14: * are necessary, one for each context. ! 15: */ ! 16: union { int _cheat;}; ! 17: #define Lcheat(a) ((a)._cheat) ! 18: #define Rcheat(a) ((int)(a)) ! 19: ! 20: #define BUFSIZ 64 ! 21: struct fileblk { ! 22: UFD fdes; ! 23: POS flin; ! 24: BOOL feof; ! 25: CHAR fsiz; ! 26: STRING fnxt; ! 27: STRING fend; ! 28: FILE fstak; ! 29: CHAR fbuf[BUFSIZ]; ! 30: }; ! 31: ! 32: /* for files not used with file descriptors */ ! 33: struct filehdr { ! 34: UFD fdes; ! 35: POS flin; ! 36: BOOL feof; ! 37: CHAR fsiz; ! 38: STRING fnxt; ! 39: STRING fend; ! 40: FILE fstak; ! 41: CHAR _fbuf[1]; ! 42: }; ! 43: ! 44: #define EOF (-1) ! 45: INT eof;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.