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 1.17 by greg, Fri Aug 9 08:27:56 1991 UTC vs.
Revision 1.18 by greg, Wed Aug 14 08:27:56 1991 UTC

# Line 42 | Line 42 | static double  dvalue();
42  
43   long  eclock = -1;                      /* value storage timer */
44  
45 < static char  context[MAXWORD];          /* current context path */
45 > static char  context[MAXWORD+1];        /* current context path */
46  
47   static VARDEF  *hashtbl[NHASH];         /* definition list */
48   static int  htndx;                      /* index for */        
# Line 195 | Line 195 | register char  *ctx;
195      if (*ctx != CNTXMARK)
196          *cpp++ = CNTXMARK;              /* make sure there's a mark */
197      do {
198 <        if (cpp >= context+MAXWORD-1) {
199 <            *cpp = '\0';
200 <            wputs(context);
201 <            wputs(": context path too long\n");
202 <            return(NULL);
203 <        }
198 >        if (cpp >= context+MAXWORD)
199 >            break;                      /* just copy what we can */
200          if (isid(*ctx))
201              *cpp++ = *ctx++;
202          else {
# Line 217 | Line 213 | qualname(nam, lvl)             /* get qualified name */
213   register char  *nam;
214   int  lvl;
215   {
216 <    static char  nambuf[MAXWORD];
216 >    static char  nambuf[MAXWORD+1];
217      register char  *cp = nambuf, *cpp;
218                                  /* check for explicit local */
219      if (*nam == CNTXMARK)
# Line 229 | Line 225 | int  lvl;
225          return(lvl > 0 ? NULL : nam);
226                                  /* copy name to static buffer */
227      while (*nam) {
228 <        if (cp >= nambuf+MAXWORD-1)
228 >        if (cp >= nambuf+MAXWORD)
229                  goto toolong;
230          *cp++ = *nam++;
231      }
# Line 248 | Line 244 | int  lvl;
244              ;
245      }
246      while (*cpp) {              /* copy context to static buffer */
247 <        if (cp >= nambuf+MAXWORD-1)
247 >        if (cp >= nambuf+MAXWORD)
248              goto toolong;
249          *cp++ = *cpp++;
250      }
255    *cp = '\0';
256    return(nambuf);             /* return qualified name */
251   toolong:
252      *cp = '\0';
253 <    eputs(nambuf);
260 <    eputs(": name too long\n");
261 <    quit(1);
253 >    return(nambuf);             /* return qualified name */
254   }
255  
256  
# Line 543 | Line 535 | getdefn()                      /* A -> SYM = E1 */
535   {
536      register EPNODE  *ep1, *ep2;
537  
538 <    if (!isalpha(nextc))
538 >    if (!isalpha(nextc) && nextc != CNTXMARK)
539          syntax("illegal variable name");
540  
541      ep1 = newnode();

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines