ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/common/calfunc.c
(Generate patch)

Comparing ray/src/common/calfunc.c (file contents):
Revision 1.5 by greg, Fri May 17 08:55:39 1991 UTC vs.
Revision 1.8 by greg, Tue Jul 16 14:26:18 1991 UTC

# Line 172 | Line 172 | double  (*fptr)();
172                  break;
173          libsize++;
174      }
175 <    lp[0].fname = savestr(fname);
175 >    lp[0].fname = fname;                /* must be static! */
176      lp[0].nargs = nargs;
177      lp[0].atyp = assign;
178      lp[0].f = fptr;
# Line 200 | Line 200 | argument(n)                    /* return nth argument for active functi
200   register int  n;
201   {
202      register ACTIVATION  *actp = curact;
203 <    EPNODE  *ep;
203 >    register EPNODE  *ep;
204      double  aval;
205  
206      if (actp == NULL || --n < 0) {
# Line 380 | Line 380 | register VARDEF  *vp;
380      }
381      lasterrno = errno;
382      errno = 0;
383 <    d = (*vp->lib->f)();
383 >    d = (*vp->lib->f)(vp->lib->fname);
384   #ifdef  IEEE
385      if (!finite(d))
386          errno = EDOM;
387   #endif
388      if (errno) {
389          wputs(fname);
390 <        wputs(": bad call\n");
390 >        if (errno == EDOM)
391 >                wputs(": domain error\n");
392 >        else if (errno == ERANGE)
393 >                wputs(": range error\n");
394 >        else
395 >                wputs(": error in call\n");
396          return(0.0);
397      }
398      errno = lasterrno;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines