65 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
#include "stdio.h"
 | 
						|
#ifndef NULL
 | 
						|
/* ANSI C */
 | 
						|
#include "stddef.h"
 | 
						|
#endif
 | 
						|
 | 
						|
#ifndef SEEK_SET
 | 
						|
#define SEEK_SET 0
 | 
						|
#define SEEK_CUR 1
 | 
						|
#define SEEK_END 2
 | 
						|
#endif
 | 
						|
 | 
						|
#ifdef MSDOS
 | 
						|
#ifndef NON_UNIX_STDIO
 | 
						|
#define NON_UNIX_STDIO
 | 
						|
#endif
 | 
						|
#endif
 | 
						|
 | 
						|
/*units*/
 | 
						|
typedef struct
 | 
						|
{	FILE *ufd;	/*0=unconnected*/
 | 
						|
	char *ufnm;
 | 
						|
#ifndef MSDOS
 | 
						|
	long uinode;
 | 
						|
	int udev;
 | 
						|
#endif
 | 
						|
	int url;	/*0=sequential*/
 | 
						|
	flag useek;	/*true=can backspace, use dir, ...*/
 | 
						|
	flag ufmt;
 | 
						|
	flag uprnt;
 | 
						|
	flag ublnk;
 | 
						|
	flag uend;
 | 
						|
	flag uwrt;	/*last io was write*/
 | 
						|
	flag uscrtch;
 | 
						|
} unit;
 | 
						|
 | 
						|
extern int errno;
 | 
						|
extern flag init;
 | 
						|
extern cilist *elist;	/*active external io list*/
 | 
						|
extern flag reading,external,sequential,formatted;
 | 
						|
extern int (*getn)(),(*putn)();	/*for formatted io*/
 | 
						|
extern long inode();
 | 
						|
extern FILE *cf;	/*current file*/
 | 
						|
extern unit *curunit;	/*current unit*/
 | 
						|
extern unit units[];
 | 
						|
extern VOID sig_die();
 | 
						|
#define err(f,m,s) {if(f) errno= m; else fatal(m,s); return(m);}
 | 
						|
 | 
						|
/*Table sizes*/
 | 
						|
#define MXUNIT 100
 | 
						|
 | 
						|
extern int recpos;	/*position in current record*/
 | 
						|
extern int cursor;	/* offset to move to */
 | 
						|
extern int hiwater;	/* so TL doesn't confuse us */
 | 
						|
 | 
						|
#define WRITE	1
 | 
						|
#define READ	2
 | 
						|
#define SEQ	3
 | 
						|
#define DIR	4
 | 
						|
#define FMT	5
 | 
						|
#define UNF	6
 | 
						|
#define EXT	7
 | 
						|
#define INT	8
 | 
						|
 | 
						|
#define buf_end(x) (x->_flag & _IONBF ? x->_ptr : x->_base + BUFSIZ)
 |