/* Copyright (c) 1979 Regents of the University of California */ static char sccsid[] = "@(#)READ8.c 1.5 4/9/82"; #include "h00vars.h" #include <errno.h> extern int errno; double READ8(curfile) register struct iorec *curfile; { double data; int retval; if (curfile->funit & FWRITE) { ERROR("%s: Attempt to read, but open for writing\n", curfile->pfname); return; } UNSYNC(curfile); errno = 0; retval = fscanf(curfile->fbuf, "%lf", &data); if (retval == EOF) { ERROR("%s: Tried to read past end of file\n", curfile->pfname); return; } if (retval == 0) { ERROR("%s: Bad data found on real read\n", curfile->pfname); return; } if (errno == ERANGE) { if (data == 0.0) ERROR("%s: Underflow on real read\n", curfile->pfname); else ERROR("%s: Overflow on real read\n", curfile->pfname); return; } if (errno != 0) { PERROR(curfile->pfname); return; } curfile->funit &= ~EOLN; curfile->funit |= SYNC; return data; }