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

Comparing ray/src/common/loadvars.c (file contents):
Revision 2.5 by greg, Thu Mar 20 12:29:20 1997 UTC vs.
Revision 2.6 by greg, Thu Mar 20 12:47:24 1997 UTC

# Line 48 | Line 48 | char   *rfname;
48                          }
49                          break;
50                  }
51 <                setvariable(buf);
51 >                if (setvariable(buf, matchvar) < 0) {
52 >                        fprintf(stderr, "%s: unknown variable: %s\n",
53 >                                        rfname, buf);
54 >                        quit(1);
55 >                }
56          }
57          fclose(fp);
58   }
59  
60  
61 < setvariable(ass)                /* assign variable according to string */
61 > int
62 > setvariable(ass, mv)            /* assign variable according to string */
63   register char   *ass;
64 + VARIABLE        *(*mv)();
65   {
66          char    varname[32];
67          int     n;
# Line 71 | Line 77 | register char  *ass;
77                  *cp++ = *ass++;
78          *cp = '\0';
79          if (!varname[0])
80 <                return;         /* no variable name! */
80 >                return(0);      /* no variable name! */
81                                          /* trim value */
82          while (isspace(*ass) || *ass == '=')
83                  ass++;
84          for (n = strlen(ass); n > 0; n--)
85                  if (!isspace(ass[n-1]))
86                          break;
87 <        if (!n) {
88 <                if (!nowarn)
83 <                        fprintf(stderr,
84 <                        "%s: warning - missing value for variable '%s'\n",
85 <                                        progname, varname);
86 <                return;
87 <        }
87 >        if (!n)
88 >                return(0);      /* no assignment */
89                                          /* match variable from list */
90 <        vp = matchvar(varname);
91 <        if (vp == NULL) {
92 <                fprintf(stderr, "%s: unknown variable '%s'\n",
92 <                                progname, varname);
93 <                quit(1);
94 <        }
90 >        vp = (*mv)(varname);
91 >        if (vp == NULL)
92 >                return(-1);
93                                          /* assign new value */
94          if (i = vp->nass) {
95                  cp = vp->value;
# Line 118 | Line 116 | register char  *ass;
116          }
117          if (isspace(*cp))               /* remove trailing space */
118                  *cp = '\0';
119 <        vp->nass++;
119 >        return(++vp->nass);
120   }
121  
122  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines