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

Comparing ray/src/gen/xform.c (file contents):
Revision 2.39 by greg, Wed Dec 28 18:35:42 2005 UTC vs.
Revision 2.46 by greg, Mon Aug 15 19:48:06 2011 UTC

# Line 106 | Line 106 | main(          /* get transform options and transform file */
106                                          sprintf(newp, "%s.%s",
107                                                          idprefix, argv[a]);
108                                          if (mal_prefix++)
109 <                                                free((void *)idprefix);
109 >                                                free(idprefix);
110                                          idprefix = newp;
111                                  }
112                                  continue;
# Line 167 | Line 167 | main(          /* get transform options and transform file */
167                  }
168  
169          if (mal_prefix)
170 <                free((void *)idprefix);
170 >                free(idprefix);
171          return(0);
172   }
173  
# Line 182 | Line 182 | doargf(                        /* take argument list from file */
182          int  inquote;
183          char  *newav[256], **avp;
184          char  argbuf[2048];
185 <        char  newid[128];
185 >        char  *newid, newidbuf[128];
186          char  *oldid;
187          register char   *cp;
188          FILE    *argfp;
# Line 258 | Line 258 | doargf(                        /* take argument list from file */
258                  for (i = fi+2; i < ac; i++)
259                          avp[newac++] = av[i];
260                  avp[newac] = NULL;
261 +                newid = newidbuf;
262                  oldid = NULL;
263                  for (i = 2; i < newac; i++)
264                          if (!strcmp(avp[i-1], "-n")) {
265                                  oldid = avp[i];
266 +                                if (strlen(oldid)+32 > sizeof(newidbuf)) {
267 +                                        newid = (char *)malloc(strlen(oldid)+32);
268 +                                        if (newid == NULL)
269 +                                                exit(2);
270 +                                }
271                                  avp[i] = newid;
272                                  break;
273                          }
# Line 277 | Line 283 | doargf(                        /* take argument list from file */
283                  else
284                          sprintf(newid, "%s.%d", oldid, k);
285                  err |= main(newac, avp);
286 +                if (newid != newidbuf)
287 +                        free(newid);
288                  k++;
289          }
290          fclose(argfp);
# Line 921 | Line 929 | initotypes(void)                       /* initialize ofun[] array */
929          tinvers[OBJ_CYLINDER] = OBJ_TUBE;
930          tinvers[OBJ_TUBE] = OBJ_CYLINDER;
931          tinvers[OBJ_INSTANCE] = OBJ_INSTANCE;   /* oh, well */
932 +        tinvers[OBJ_MESH] = OBJ_MESH;           /* ditto */
933   }
934  
935  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines