--- ray/src/rt/func.c 1989/03/14 10:41:21 1.3 +++ ray/src/rt/func.c 1989/10/05 07:23:22 1.7 @@ -53,8 +53,8 @@ double sca; } fobj = m; fray = r; - fxf.sca = r->ros * sca; - multmat4(fxf.xfm, r->rox, xfm); + fxf.sca = r->robs * sca; + multmat4(fxf.xfm, r->robx, xfm); eclock++; /* notify expression evaluator */ } @@ -66,18 +66,15 @@ RAY *r; register XF *mxf; if ((mxf = (XF *)m->os) == NULL) { - register int n = m->oargs.nsargs; - register char **sa = m->oargs.sarg; + register int n; + register char **sa; - while (n > 0 && **sa != '-') { - n--; - sa++; - } + for (n = m->oargs.nsargs, sa = m->oargs.sarg; + n > 0 && **sa != '-'; n--, sa++) + ; mxf = (XF *)malloc(sizeof(XF)); if (mxf == NULL) goto memerr; - mxf->sca = 1.0; - setident4(mxf->xfm); if (invxf(mxf->xfm, &mxf->sca, n, sa) != n) objerror(m, USER, "bad transform"); if (mxf->sca < 0.0) @@ -98,7 +95,7 @@ char *fname; extern char *libpath; /* library search path */ char *ffname; - if ((ffname = getpath(fname, libpath)) == NULL) { + if ((ffname = getpath(fname, libpath, R_OK)) == NULL) { sprintf(errmsg, "cannot find function file \"%s\"", fname); error(USER, errmsg); }