|
|
1.1 ! root 1: #include "stdio.h" ! 2: #include "errno.h" ! 3: #ifndef NULL ! 4: /* ANSI C */ ! 5: #include "stddef.h" ! 6: #endif ! 7: ! 8: #ifndef SEEK_SET ! 9: #define SEEK_SET 0 ! 10: #define SEEK_CUR 1 ! 11: #define SEEK_END 2 ! 12: #endif ! 13: ! 14: #ifdef MSDOS ! 15: #ifndef NON_UNIX_STDIO ! 16: #define NON_UNIX_STDIO ! 17: #endif ! 18: #endif ! 19: ! 20: #ifdef UIOLEN_int ! 21: typedef int uiolen; ! 22: #else ! 23: typedef long uiolen; ! 24: #endif ! 25: ! 26: /*units*/ ! 27: typedef struct ! 28: { FILE *ufd; /*0=unconnected*/ ! 29: char *ufnm; ! 30: #ifndef MSDOS ! 31: long uinode; ! 32: int udev; ! 33: #endif ! 34: int url; /*0=sequential*/ ! 35: flag useek; /*true=can backspace, use dir, ...*/ ! 36: flag ufmt; ! 37: flag uprnt; ! 38: flag ublnk; ! 39: flag uend; ! 40: flag uwrt; /*last io was write*/ ! 41: flag uscrtch; ! 42: } unit; ! 43: ! 44: extern flag f__init; ! 45: extern cilist *f__elist; /*active external io list*/ ! 46: extern flag f__reading,f__external,f__sequential,f__formatted; ! 47: #undef Void ! 48: #ifdef KR_headers ! 49: #define Void /*void*/ ! 50: extern int (*f__getn)(),(*f__putn)(); /*for formatted io*/ ! 51: extern long f__inode(); ! 52: extern VOID sig_die(); ! 53: extern int (*f__donewrec)(), t_putc(), x_wSL(); ! 54: extern int c_sfe(), err_fl(), xrd_SL(); ! 55: #else ! 56: #define Void void ! 57: #ifdef __cplusplus ! 58: extern "C" { ! 59: #endif ! 60: extern int (*f__getn)(void),(*f__putn)(int); /*for formatted io*/ ! 61: extern long f__inode(char*,int*); ! 62: extern void sig_die(char*,int); ! 63: extern void f__fatal(int,char*); ! 64: extern int t_runc(alist*); ! 65: extern int f__nowreading(unit*), f__nowwriting(unit*); ! 66: extern int fk_open(int,int,ftnint); ! 67: extern int en_fio(void); ! 68: extern void f_init(void); ! 69: extern int (*f__donewrec)(void), t_putc(int), x_wSL(void); ! 70: extern void b_char(char*,char*,ftnlen), g_char(char*,ftnlen,char*); ! 71: extern int c_sfe(cilist*), z_rnew(void); ! 72: extern int isatty(int); ! 73: extern int err__fl(int,int,char*); ! 74: extern int xrd_SL(void); ! 75: #ifdef __cplusplus ! 76: } ! 77: #endif ! 78: #endif ! 79: extern int (*f__doend)(Void); ! 80: extern FILE *f__cf; /*current file*/ ! 81: extern unit *f__curunit; /*current unit*/ ! 82: extern unit f__units[]; ! 83: #define err(f,m,s) {if(f) errno= m; else f__fatal(m,s); return(m);} ! 84: #define errfl(f,m,s) return err__fl(f,m,s) ! 85: ! 86: /*Table sizes*/ ! 87: #define MXUNIT 100 ! 88: ! 89: extern int f__recpos; /*position in current record*/ ! 90: extern int f__cursor; /* offset to move to */ ! 91: extern int f__hiwater; /* so TL doesn't confuse us */ ! 92: ! 93: #define WRITE 1 ! 94: #define READ 2 ! 95: #define SEQ 3 ! 96: #define DIR 4 ! 97: #define FMT 5 ! 98: #define UNF 6 ! 99: #define EXT 7 ! 100: #define INT 8 ! 101: ! 102: #define buf_end(x) (x->_flag & _IONBF ? x->_ptr : x->_base + BUFSIZ)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.