--- ray/src/common/calfunc.c 1991/06/28 09:31:59 1.7 +++ ray/src/common/calfunc.c 1991/11/12 16:55:16 2.1 @@ -382,12 +382,20 @@ register VARDEF *vp; errno = 0; d = (*vp->lib->f)(vp->lib->fname); #ifdef IEEE - if (!finite(d)) - errno = EDOM; + if (errno == 0) + if (isnan(d)) + errno = EDOM; + else if (isinf(d)) + errno = ERANGE; #endif if (errno) { wputs(fname); - wputs(": bad call\n"); + if (errno == EDOM) + wputs(": domain error\n"); + else if (errno == ERANGE) + wputs(": range error\n"); + else + wputs(": error in call\n"); return(0.0); } errno = lasterrno;