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