|
|
1.1 ! root 1: /* Copyright (c) 1979 Regents of the University of California */ ! 2: ! 3: static char sccsid[] = "@(#)READ8.c 1.5 4/9/82"; ! 4: ! 5: #include "h00vars.h" ! 6: #include <errno.h> ! 7: extern int errno; ! 8: ! 9: double ! 10: READ8(curfile) ! 11: ! 12: register struct iorec *curfile; ! 13: { ! 14: double data; ! 15: int retval; ! 16: ! 17: if (curfile->funit & FWRITE) { ! 18: ERROR("%s: Attempt to read, but open for writing\n", ! 19: curfile->pfname); ! 20: return; ! 21: } ! 22: UNSYNC(curfile); ! 23: errno = 0; ! 24: retval = fscanf(curfile->fbuf, "%lf", &data); ! 25: if (retval == EOF) { ! 26: ERROR("%s: Tried to read past end of file\n", curfile->pfname); ! 27: return; ! 28: } ! 29: if (retval == 0) { ! 30: ERROR("%s: Bad data found on real read\n", curfile->pfname); ! 31: return; ! 32: } ! 33: if (errno == ERANGE) { ! 34: if (data == 0.0) ! 35: ERROR("%s: Underflow on real read\n", curfile->pfname); ! 36: else ! 37: ERROR("%s: Overflow on real read\n", curfile->pfname); ! 38: return; ! 39: } ! 40: if (errno != 0) { ! 41: PERROR(curfile->pfname); ! 42: return; ! 43: } ! 44: curfile->funit &= ~EOLN; ! 45: curfile->funit |= SYNC; ! 46: return data; ! 47: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.