--- ray/src/common/loadvars.c 1995/12/12 14:00:48 2.1 +++ ray/src/common/loadvars.c 1997/03/20 12:29:20 2.5 @@ -18,7 +18,9 @@ static char SCCSid[] = "$SunId$ LBL"; extern char *malloc(), *realloc(); #endif +extern char *fgetline(); + loadvars(rfname) /* load variables into vv from file */ char *rfname; { @@ -30,7 +32,7 @@ char *rfname; fp = stdin; else if ((fp = fopen(rfname, "r")) == NULL) { perror(rfname); - exit(1); + quit(1); } while (fgetline(buf, sizeof(buf), fp) != NULL) { for (cp = buf; *cp; cp++) { @@ -76,9 +78,11 @@ register char *ass; for (n = strlen(ass); n > 0; n--) if (!isspace(ass[n-1])) break; - if (!n && !nowarn) { - fprintf(stderr, "%s: warning - missing value for variable '%s'\n", - progname, varname); + if (!n) { + if (!nowarn) + fprintf(stderr, + "%s: warning - missing value for variable '%s'\n", + progname, varname); return; } /* match variable from list */ @@ -86,7 +90,7 @@ register char *ass; if (vp == NULL) { fprintf(stderr, "%s: unknown variable '%s'\n", progname, varname); - exit(1); + quit(1); } /* assign new value */ if (i = vp->nass) { @@ -100,7 +104,7 @@ register char *ass; vp->value = malloc(n+1); if (vp->value == NULL) { perror(progname); - exit(1); + quit(1); } cp = vp->value+i; /* copy value, squeezing spaces */ *cp = *ass; @@ -133,15 +137,15 @@ char *nam; char * -nvalue(vp, n) /* return nth variable value */ -VARIABLE *vp; +nvalue(vn, n) /* return nth variable value */ +register int vn; register int n; { register char *cp; - if (vp == NULL | n < 0 | n >= vp->nass) + if (vval(vn) == NULL | n < 0 | n >= vdef(vn)) return(NULL); - cp = vp->value; + cp = vval(vn); while (n--) while (*cp++) ; @@ -217,7 +221,7 @@ register VARIABLE *vp; } fprintf(stderr, "%s: illegal value for boolean variable '%s'\n", progname, vp->name); - exit(1); + quit(1); } @@ -239,7 +243,7 @@ register VARIABLE *vp; } fprintf(stderr, "%s: illegal value for qualitative variable '%s'\n", progname, vp->name); - exit(1); + quit(1); } @@ -251,7 +255,7 @@ register VARIABLE *vp; if (isint(vp->value)) return; fprintf(stderr, "%s: illegal value for integer variable '%s'\n", progname, vp->name); - exit(1); + quit(1); } @@ -263,7 +267,7 @@ register VARIABLE *vp; if (isflt(vp->value)) return; fprintf(stderr, "%s: illegal value for real variable '%s'\n", progname, vp->name); - exit(1); + quit(1); } @@ -279,7 +283,7 @@ register FILE *fp; fputs("= ", fp); k = clipline = ( vv[i].fixval == catvalues ? 64 : 320 ) - strlen(vnam(i)) ; - cp = nvalue(vv+i, j); + cp = nvalue(i, j); while (*cp) { putc(*cp++, fp); if (--k <= 0) { /* line too long */