28 |
|
#include "copyright.h" |
29 |
|
|
30 |
|
#include <stdio.h> |
31 |
– |
|
31 |
|
#include <string.h> |
33 |
– |
|
32 |
|
#include <ctype.h> |
33 |
|
|
34 |
+ |
#include "rterror.h" |
35 |
|
#include "calcomp.h" |
36 |
|
|
37 |
|
#ifndef NHASH |
42 |
|
|
43 |
|
#define newnode() (EPNODE *)ecalloc(1, sizeof(EPNODE)) |
44 |
|
|
45 |
< |
static double dvalue(); |
45 |
> |
static double dvalue(char *name, EPNODE *d); |
46 |
|
|
47 |
|
#define MAXCLOCK (1L<<31) /* clock wrap value */ |
48 |
|
|
271 |
|
int lvl |
272 |
|
) |
273 |
|
{ |
274 |
< |
static char nambuf[MAXWORD+1]; |
274 |
> |
static char nambuf[RMAXWORD+1]; |
275 |
|
register char *cp = nambuf, *cpp; |
276 |
|
/* check for explicit local */ |
277 |
|
if (*nam == CNTXMARK) |
283 |
|
return(lvl > 0 ? NULL : nam); |
284 |
|
/* copy name to static buffer */ |
285 |
|
while (*nam) { |
286 |
< |
if (cp >= nambuf+MAXWORD) |
286 |
> |
if (cp >= nambuf+RMAXWORD) |
287 |
|
goto toolong; |
288 |
|
*cp++ = *nam++; |
289 |
|
} |
302 |
|
; |
303 |
|
} |
304 |
|
while (*cpp) { /* copy context to static buffer */ |
305 |
< |
if (cp >= nambuf+MAXWORD) |
305 |
> |
if (cp >= nambuf+RMAXWORD) |
306 |
|
goto toolong; |
307 |
|
*cp++ = *cpp++; |
308 |
|
} |
688 |
|
*/ |
689 |
|
|
690 |
|
|
691 |
< |
static double |
692 |
< |
dvalue( /* evaluate a variable */ |
694 |
< |
char *name, |
695 |
< |
EPNODE *d |
696 |
< |
) |
691 |
> |
static double /* evaluate a variable */ |
692 |
> |
dvalue(char *name, EPNODE *d) |
693 |
|
{ |
694 |
|
register EPNODE *ep1, *ep2; |
695 |
|
|