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.17 by greg, Mon Jun 5 16:09:55 2023 UTC vs.
Revision 2.19 by greg, Fri Jun 9 22:52:47 2023 UTC

# Line 62 | Line 62 | loadvars(                      /* load variables into vv from file */
62   int
63   setvariable(                    /* assign variable according to string */
64          const char      *ass,
65 <        VARIABLE        *(*mv)(char*)
65 >        VARIABLE        *(*mv)(const char*)
66   )
67   {
68 +        int     quote = '\0';
69          char    varname[32];
70          int     n;
71          char    *cp;
# Line 106 | Line 107 | setvariable(                   /* assign variable according to string
107                  perror(progname);
108                  quit(1);
109          }
110 <        cp = vp->value+i;               /* copy value, squeezing spaces */
110 >        cp = vp->value+i;               /* copy value */
111          *cp = *ass;
112          for (i = 1; i <= n; i++) {
113                  if (ass[i] == NOCHAR)
114                          continue;
115 <                if (isspace(*cp))
116 <                        while (isspace(ass[i]))
117 <                                i++;
115 >                if (quote) {            /* don't change quoted parts */
116 >                        quote *= (ass[i] != quote);
117 >                } else {                /* otherwise, squeeze spaces */
118 >                        if (isspace(*cp))
119 >                                while (isspace(ass[i]))
120 >                                        i++;
121 >                        if ((ass[i] == '"') | (ass[i] == '\''))
122 >                                quote = ass[i];
123 >                }
124                  *++cp = ass[i];
125          }
126          if (isspace(*cp))               /* remove trailing space */

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines