--- ray/src/rt/data.c 1994/05/13 13:05:13 2.9 +++ ray/src/rt/data.c 1995/06/30 16:07:44 2.10 @@ -34,8 +34,6 @@ static char SCCSid[] = "$SunId$ LBL"; #define hash(s) (shash(s)%TABSIZ) -extern char *fgetword(); - extern char *getlibpath(); /* library search path */ static DATARRAY *dtab[TABSIZ]; /* data array list */ @@ -47,7 +45,6 @@ DATARRAY * getdata(dname) /* get data array dname */ char *dname; { - char word[64]; char *dfname; FILE *fp; int asize; @@ -92,24 +89,20 @@ char *dname; error(SYSTEM, errmsg); } /* get dimensions */ - if (fgetword(word, sizeof(word), fp) == NULL || !isint(word)) + if (fgetval(fp, 'i', &dp->nd) <= 0) goto scanerr; - dp->nd = atoi(word); if (dp->nd <= 0 || dp->nd > MAXDDIM) { sprintf(errmsg, "bad number of dimensions for \"%s\"", dname); error(USER, errmsg); } asize = 1; for (i = 0; i < dp->nd; i++) { - if (fgetword(word, sizeof(word), fp) == NULL || !isflt(word)) + if (fgetval(fp, 'd', &dp->dim[i].org) <= 0) goto scanerr; - dp->dim[i].org = atof(word); - if (fgetword(word, sizeof(word), fp) == NULL || !isflt(word)) + if (fgetval(fp, 'd', &dp->dim[i].siz) <= 0) goto scanerr; - dp->dim[i].siz = atof(word); - if (fgetword(word, sizeof(word), fp) == NULL || !isint(word)) + if (fgetval(fp, 'i', &dp->dim[i].ne) <= 0) goto scanerr; - dp->dim[i].ne = atoi(word); if (dp->dim[i].ne < 2) goto scanerr; asize *= dp->dim[i].ne; @@ -117,12 +110,9 @@ char *dname; dp->dim[i].p = (double *)malloc(dp->dim[i].ne*sizeof(double)); if (dp->dim[i].p == NULL) goto memerr; - for (j = 0; j < dp->dim[i].ne; j++) { - if (fgetword(word, sizeof(word), fp) == NULL || - !isflt(word)) + for (j = 0; j < dp->dim[i].ne; j++) + if (fgetval(fp, 'd', &dp->dim[i].p[i]) <= 0) goto scanerr; - dp->dim[i].p[j] = atof(word); - } for (j = 1; j < dp->dim[i].ne-1; j++) if ((dp->dim[i].p[j-1] < dp->dim[i].p[j]) != (dp->dim[i].p[j] < dp->dim[i].p[j+1])) @@ -136,11 +126,9 @@ char *dname; if ((dp->arr = (DATATYPE *)malloc(asize*sizeof(DATATYPE))) == NULL) goto memerr; - for (i = 0; i < asize; i++) { - if (fgetword(word, sizeof(word), fp) == NULL || !isflt(word)) + for (i = 0; i < asize; i++) + if (fgetval(fp, DATATY, &dp->arr[i]) <= 0) goto scanerr; - dp->arr[i] = atof(word); - } fclose(fp); i = hash(dname); dp->next = dtab[i];