42 |
|
|
43 |
|
static double dvalue(); |
44 |
|
|
45 |
< |
long eclock = -1; /* value storage timer */ |
45 |
> |
unsigned long eclock = 0; /* value storage timer */ |
46 |
|
|
47 |
|
static char context[MAXWORD+1]; /* current context path */ |
48 |
|
|
556 |
|
qname = qualname(dname(ep), 0); |
557 |
|
#ifdef REDEFW |
558 |
|
if ((vdef = varlookup(qname)) != NULL) |
559 |
< |
if (vdef->def != NULL) { |
559 |
> |
if (vdef->def != NULL && epcmp(ep, vdef->def)) { |
560 |
|
wputs(qname); |
561 |
|
if (vdef->def->type == ':') |
562 |
|
wputs(": redefined constant expression\n"); |
638 |
|
ep1->sibling->type != NUM) { |
639 |
|
ep1 = newnode(); |
640 |
|
ep1->type = TICK; |
641 |
< |
ep1->v.tick = -1; |
641 |
> |
ep1->v.tick = 0; |
642 |
|
addekid(ep2, ep1); |
643 |
|
ep1 = newnode(); |
644 |
|
ep1->type = NUM; |
699 |
|
if (ep1->type == NUM) |
700 |
|
return(ep1->v.num); /* return if number */ |
701 |
|
ep2 = ep1->sibling; /* check time */ |
702 |
< |
if (ep2->v.tick < 0 || ep2->v.tick < eclock) { |
703 |
< |
ep2->v.tick = d->type == ':' ? 1L<<30 : eclock; |
702 |
> |
if (ep2->v.tick == 0 || ep2->v.tick < eclock) { |
703 |
> |
ep2->v.tick = d->type == ':' ? ~0L : eclock; |
704 |
|
ep2 = ep2->sibling; |
705 |
|
ep2->v.num = evalue(ep1); /* needs new value */ |
706 |
|
} else |