--- ray/src/common/calexpr.c 1992/11/10 10:29:19 2.10 +++ ray/src/common/calexpr.c 1993/09/08 09:12:37 2.15 @@ -34,17 +34,21 @@ static char SCCSid[] = "$SunId$ LBL"; #define isdecimal(c) (isdigit(c) || (c) == '.') -#ifndef atof -extern double atof(); -#endif -extern char *fgets(), *savestr(); +extern char *savestr(); extern char *emalloc(), *ecalloc(); extern EPNODE *curfunc; extern double efunc(), evariable(); -static double euminus(), echannel(), eargument(), enumber(); +static double euminus(), eargument(), enumber(); +#ifdef INCHAN +static double echannel(); +#endif static double eadd(), esubtr(), emult(), edivi(), epow(); static double ebotch(); +#ifdef DCL_ATOF +extern double atof(); +#endif + int nextc; /* lookahead character */ double (*eoper[])() = { /* expression operations */ @@ -128,7 +132,7 @@ char *expr; epfree(epar) /* free a parse tree */ register EPNODE *epar; { - register EPNODE *ep, *epn; + register EPNODE *ep; switch (epar->type) { @@ -149,8 +153,8 @@ register EPNODE *epar; break; default: - for (ep = epar->v.kid; ep != NULL; ep = epn) { - epn = ep->sibling; + while ((ep = epar->v.kid) != NULL) { + epar->v.kid = ep->sibling; epfree(ep); } break;