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.1 (2.11BSD) 1999/10/24 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: extern ioflag init; 26: extern flag reading,external,sequential,formatted; 27: extern int (*getn)(),(*putn)(),(*ungetn)(); /*for formatted io*/ 28: extern FILE *cf; /*current file structure*/ 29: extern unit *curunit; /*current unit structure */ 30: extern int lunit; /*current logical unit*/ 31: extern char *lfname; /*current filename*/ 32: extern unit units[]; /*logical units table*/ 33: extern int recpos; /*position in current record*/ 34: extern ftnint recnum; /*current record number*/ 35: extern int reclen; /* current record length */ 36: extern int (*doed)(), (*doned)(); 37: extern int (*dorevert)(), (*donewrec)(), (*doend)(), (*dotab)(); 38: extern ioflag cblank, cplus, tab, elist, signit, errflag, endflag; 39: extern char *fmtbuf, *icptr, *icend, *fmtptr; 40: extern int scale; 41: extern int cursor; 42: extern int radix; 43: extern struct ioiflg ioiflg_;