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

Comparing ray/src/common/caldefn.c (file contents):
Revision 2.7 by greg, Thu Feb 16 09:49:27 1995 UTC vs.
Revision 2.10 by greg, Wed Jan 8 17:10:24 1997 UTC

# Line 42 | Line 42 | extern char  *ecalloc(), *emalloc(), *savestr(), *strc
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  
# Line 55 | Line 55 | static EPNODE  *outchan;
55   #endif
56  
57   #ifdef  FUNCTION
58 < EPNODE  *curfunc;
58 > EPNODE  *curfunc = NULL;
59   #define  dname(ep)      ((ep)->v.kid->type == SYM ? \
60                          (ep)->v.kid->v.name : \
61                          (ep)->v.kid->v.kid->v.name)
# Line 299 | Line 299 | toolong:
299   incontext(qn)                   /* is qualified name in current context? */
300   register char  *qn;
301   {
302 +    if (!context[0])                    /* global context accepts all */
303 +        return(1);
304      while (*qn && *qn != CNTXMARK)      /* find context mark */
305          qn++;
306      return(!strcmp(qn, context));
# Line 327 | Line 329 | int  lvl;
329                                  /* if context is global, clear all */
330      for (i = 0; i < NHASH; i++)
331          for (vp = hashtbl[i]; vp != NULL; vp = vp->next)
332 <            if (!context[0] || incontext(vp->name))
332 >            if (incontext(vp->name))
333                  if (lvl >= 2)
334                      dremove(vp->name);
335                  else
# Line 618 | Line 620 | getdefn()                      /* A -> SYM = E1 */
620              syntax("')' expected");
621          scan();
622          curfunc = ep1;
623 <    } else
622 <        curfunc = NULL;
623 >    }
624   #endif
625  
626      if (nextc != '=' && nextc != ':')
# Line 638 | Line 639 | getdefn()                      /* A -> SYM = E1 */
639              ep1->sibling->type != NUM) {
640          ep1 = newnode();
641          ep1->type = TICK;
642 <        ep1->v.tick = -1;
642 >        ep1->v.tick = 0;
643          addekid(ep2, ep1);
644          ep1 = newnode();
645          ep1->type = NUM;
646          addekid(ep2, ep1);
647      }
648  
649 + #ifdef  FUNCTION
650 +    curfunc = NULL;
651 + #endif
652 +
653      return(ep2);
654   }
655  
# Line 699 | Line 704 | EPNODE *d;
704      if (ep1->type == NUM)
705          return(ep1->v.num);                     /* return if number */
706      ep2 = ep1->sibling;                         /* check time */
707 <    if (ep2->v.tick < 0 || ep2->v.tick < eclock) {
708 <        ep2->v.tick = d->type == ':' ? 1L<<30 : eclock;
707 >    if (ep2->v.tick == 0 || ep2->v.tick < eclock) {
708 >        ep2->v.tick = d->type == ':' ? ~0L : eclock;
709          ep2 = ep2->sibling;
710          ep2->v.num = evalue(ep1);               /* needs new value */
711      } else

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines