1: /* 2: * Copyright (c) 1980 Regents of the University of California. 3: * All rights reserved. The Berkeley software License Agreement 4: * specifies the terms and conditions for redistribution. 5: * 6: * @(#)fio.h 5.1 (Berkeley) 6/7/85 7: */ 8: 9: /* 10: * f77 file i/o common definitions 11: */ 12: 13: #include "fiodefs.h" 14: 15: #define LOCAL static 16: #define err(f,n,s) {if(f) return(errno=n); else fatal(n,s);} 17: #define not_legal(u) (u>=MXUNIT || u<0) 18: #define GET(x) if((x=(*getn)())<0) return(x) 19: #define VAL(x) (x!='\n'?x:' ') 20: #define PUT(x) {if(n=(*putn)(x)) return(n);} 21: #define lcase(s) ((s >= 'A') && (s <= 'Z') ? s+('a'-'A') : s) 22: 23: #define MAXINTLENGTH 32 /* to accomodate binary format */ 24: 25: long ftell(); 26: 27: extern int errno; 28: extern ioflag init; 29: extern flag reading,external,sequential,formatted; 30: extern int (*getn)(),(*putn)(),(*ungetn)(); /*for formatted io*/ 31: extern FILE *cf; /*current file structure*/ 32: extern unit *curunit; /*current unit structure */ 33: extern int lunit; /*current logical unit*/ 34: extern char *lfname; /*current filename*/ 35: extern unit units[]; /*logical units table*/ 36: extern int recpos; /*position in current record*/ 37: extern ftnint recnum; /*current record number*/ 38: extern int reclen; /* current record length */ 39: extern int (*doed)(), (*doned)(); 40: extern int (*dorevert)(), (*donewrec)(), (*doend)(), (*dotab)(); 41: extern ioflag cblank, cplus, tab, elist, signit, errflag, endflag; 42: extern char *fmtbuf, *icptr, *icend, *fmtptr; 43: extern int scale; 44: extern int cursor; 45: extern int radix; 46: extern struct ioiflg ioiflg_;