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.50 by greg, Fri Mar 4 00:21:21 2016 UTC

# Line 13 | Line 13 | static const char RCSid[] = "$Id$";
13  
14   #include  "platform.h"
15   #include  "paths.h"
16 #include  "rtprocess.h" /* win_popen() */
16   #include  "rtio.h"
17   #include  "rtmath.h"
18   #include  "object.h"
# Line 98 | Line 97 | main(          /* get transform options and transform file */
97                                  if (idprefix == NULL)
98                                          idprefix = argv[a];
99                                  else {
100 <                                        register char   *newp;
100 >                                        char    *newp;
101                                          newp = (char *)malloc(strlen(idprefix)+
102                                                          strlen(argv[a])+2);
103                                          if (newp == NULL)
# Line 106 | Line 105 | main(          /* get transform options and transform file */
105                                          sprintf(newp, "%s.%s",
106                                                          idprefix, argv[a]);
107                                          if (mal_prefix++)
108 <                                                free((void *)idprefix);
108 >                                                free(idprefix);
109                                          idprefix = newp;
110                                  }
111                                  continue;
# Line 134 | Line 133 | main(          /* get transform options and transform file */
133  
134          a += xf(&tot, argc-a, argv+a);
135  
136 <        if ( (reverse = tot.sca < 0.0) )
136 >        if ( (reverse = (tot.sca < 0.0)) )
137                  tot.sca = -tot.sca;
138          if (invert)
139                  reverse = !reverse;
# Line 167 | Line 166 | main(          /* get transform options and transform file */
166                  }
167  
168          if (mal_prefix)
169 <                free((void *)idprefix);
169 >                free(idprefix);
170          return(0);
171   }
172  
# Line 182 | Line 181 | doargf(                        /* take argument list from file */
181          int  inquote;
182          char  *newav[256], **avp;
183          char  argbuf[2048];
184 <        char  newid[128];
184 >        char  *newid, newidbuf[128];
185          char  *oldid;
186 <        register char   *cp;
186 >        char    *cp;
187          FILE    *argfp;
188          int  n, i, k, newac, err;
189          
# Line 258 | Line 257 | doargf(                        /* take argument list from file */
257                  for (i = fi+2; i < ac; i++)
258                          avp[newac++] = av[i];
259                  avp[newac] = NULL;
260 +                newid = newidbuf;
261                  oldid = NULL;
262                  for (i = 2; i < newac; i++)
263                          if (!strcmp(avp[i-1], "-n")) {
264                                  oldid = avp[i];
265 +                                if (strlen(oldid)+32 > sizeof(newidbuf)) {
266 +                                        newid = (char *)malloc(strlen(oldid)+32);
267 +                                        if (newid == NULL)
268 +                                                exit(2);
269 +                                }
270                                  avp[i] = newid;
271                                  break;
272                          }
# Line 277 | Line 282 | doargf(                        /* take argument list from file */
282                  else
283                          sprintf(newid, "%s.%d", oldid, k);
284                  err |= main(newac, avp);
285 +                if (newid != newidbuf)
286 +                        free(newid);
287                  k++;
288          }
289          fclose(argfp);
# Line 335 | Line 342 | doarray(                       /* make array */
342   void
343   xform(                  /* transform stream by tot.xfm */
344          char  *name,
345 <        register FILE  *fin
345 >        FILE  *fin
346   )
347   {
348          int  nobjs = 0;
349 <        register int  c;
349 >        int  c;
350  
351          while ((c = getc(fin)) != EOF) {
352                  if (isspace(c))                         /* blank */
# Line 448 | Line 455 | o_default(                     /* pass on arguments unchanged */
455          FILE  *fin
456   )
457   {
458 <        register int  i;
458 >        int  i;
459          FUNARGS  fa;
460  
461          if (readfargs(&fa, fin) != 1)
# Line 484 | Line 491 | addxform(                      /* add xf arguments to strings */
491          FILE  *fin
492   )
493   {
494 <        register int  i;
494 >        int  i;
495          int  resetarr = 0;
496          FUNARGS  fa;
497  
# Line 597 | Line 604 | m_mist(                /* transform arguments for mist */
604          else
605                  for (i = 0; i < fa.nsargs; i++) {
606                          char    sname[256], *sp;
607 <                        register char   *cp1, *cp2 = sname;
607 >                        char    *cp1, *cp2 = sname;
608                                                          /* add idprefix */
609                          for (sp = fa.sarg[i]; *sp; sp = cp1) {
610                                  for (cp1 = idprefix; *cp1; )
# Line 767 | Line 774 | o_face(                        /* transform face arguments */
774   )
775   {
776          FVECT  p;
777 <        register int  i;
777 >        int  i;
778          FUNARGS  fa;
779  
780          if (readfargs(&fa, fin) != 1)
# Line 881 | Line 888 | o_ring(                        /* transform ring arguments */
888   void
889   initotypes(void)                        /* initialize ofun[] array */
890   {
891 <        register int  i;
891 >        int  i;
892  
893          if (ofun[OBJ_SOURCE].funp == o_source)
894                  return;                 /* done already */
# Line 921 | Line 928 | initotypes(void)                       /* initialize ofun[] array */
928          tinvers[OBJ_CYLINDER] = OBJ_TUBE;
929          tinvers[OBJ_TUBE] = OBJ_CYLINDER;
930          tinvers[OBJ_INSTANCE] = OBJ_INSTANCE;   /* oh, well */
931 +        tinvers[OBJ_MESH] = OBJ_MESH;           /* ditto */
932   }
933  
934  
# Line 958 | Line 966 | openmain(              /* open input, changing directory for file
966          static char  origdir[PATH_MAX];
967          static char  curfn[PATH_MAX];
968          static int  diffdir;
969 <        register char  *fpath;
969 >        char  *fpath;
970  
971          if (iname == NULL) {                    /* standard input */
972                  if (mainfp == NULL) {
973 <                        register int  c;
973 >                        int  c;
974                          strcpy(mainfn, "standard input");
975                          if (nrept <= 1) {
976                                  mainfp = stdin;
# Line 1006 | Line 1014 | openmain(              /* open input, changing directory for file
1014                                                  /* record path name */
1015          strcpy(mainfn, fpath);
1016          if (expand) {                           /* change to local directory */
1017 <                register char  *cp = fpath + strlen(fpath);     /* get dir. */
1017 >                char  *cp = fpath + strlen(fpath);      /* get dir. */
1018                  while (cp > fpath) {
1019                          cp--;
1020                          if (ISDIRSEP(*cp)) {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines