--- ray/src/gen/xform.c 2009/07/26 18:34:59 2.41 +++ ray/src/gen/xform.c 2025/06/07 05:09:45 2.54 @@ -1,5 +1,5 @@ #ifndef lint -static const char RCSid[] = "$Id: xform.c,v 2.41 2009/07/26 18:34:59 greg Exp $"; +static const char RCSid[] = "$Id: xform.c,v 2.54 2025/06/07 05:09:45 greg Exp $"; #endif /* * xform.c - program to transform object files. @@ -12,8 +12,6 @@ static const char RCSid[] = "$Id: xform.c,v 2.41 2009/ #include #include "platform.h" -#include "paths.h" -#include "rtprocess.h" /* win_popen() */ #include "rtio.h" #include "rtmath.h" #include "object.h" @@ -98,7 +96,7 @@ main( /* get transform options and transform file */ if (idprefix == NULL) idprefix = argv[a]; else { - register char *newp; + char *newp; newp = (char *)malloc(strlen(idprefix)+ strlen(argv[a])+2); if (newp == NULL) @@ -106,7 +104,7 @@ main( /* get transform options and transform file */ sprintf(newp, "%s.%s", idprefix, argv[a]); if (mal_prefix++) - free((void *)idprefix); + free(idprefix); idprefix = newp; } continue; @@ -134,7 +132,7 @@ main( /* get transform options and transform file */ a += xf(&tot, argc-a, argv+a); - if ( (reverse = tot.sca < 0.0) ) + if ( (reverse = (tot.sca < 0.0)) ) tot.sca = -tot.sca; if (invert) reverse = !reverse; @@ -167,7 +165,7 @@ main( /* get transform options and transform file */ } if (mal_prefix) - free((void *)idprefix); + free(idprefix); return(0); } @@ -184,7 +182,7 @@ doargf( /* take argument list from file */ char argbuf[2048]; char *newid, newidbuf[128]; char *oldid; - register char *cp; + char *cp; FILE *argfp; int n, i, k, newac, err; @@ -210,19 +208,21 @@ doargf( /* take argument list from file */ } n = 0; /* count number of lines in file */ while (fgetline(argbuf,sizeof(argbuf),argfp) != NULL) - n += argbuf[0] && argbuf[0] != '#'; + n += (argbuf[0] != '\0') & (argbuf[0] != '#'); if (!n) { fprintf(stderr, "%s: empty argument file \"%s\"\n", av[0], av[fi+1]); exit(1); } - nrept *= n; rewind(argfp); } + nrept *= n; err = 0; k = 0; /* read each arg list and call main */ while (fgetline(argbuf,sizeof(argbuf),argfp) != NULL) { - if (!argbuf[0] || argbuf[0] == '#') + if (!argbuf[0] | (argbuf[0] == '#')) { + printf("%s\n", argbuf); continue; + } avp = newav+2; avp[0] = av[0]; for (i = 1; i < fi; i++) @@ -258,11 +258,11 @@ doargf( /* take argument list from file */ for (i = fi+2; i < ac; i++) avp[newac++] = av[i]; avp[newac] = NULL; - newid = oldid = NULL; + newid = newidbuf; + oldid = NULL; for (i = 2; i < newac; i++) if (!strcmp(avp[i-1], "-n")) { oldid = avp[i]; - newid = newidbuf; if (strlen(oldid)+32 > sizeof(newidbuf)) { newid = (char *)malloc(strlen(oldid)+32); if (newid == NULL) @@ -274,7 +274,7 @@ doargf( /* take argument list from file */ if (oldid == NULL) { newav[0] = av[0]; newav[1] = "-n"; - newav[2] = newid = newidbuf; + newav[2] = newid; avp = newav; newac += 2; } @@ -283,8 +283,8 @@ doargf( /* take argument list from file */ else sprintf(newid, "%s.%d", oldid, k); err |= main(newac, avp); - if (newid != NULL && newid != newidbuf) - free((void *)newid); + if (newid != newidbuf) + free(newid); k++; } fclose(argfp); @@ -343,11 +343,11 @@ doarray( /* make array */ void xform( /* transform stream by tot.xfm */ char *name, - register FILE *fin + FILE *fin ) { int nobjs = 0; - register int c; + int c; while ((c = getc(fin)) != EOF) { if (isspace(c)) /* blank */ @@ -393,7 +393,9 @@ xfcomm( /* transform a command */ exit(1); } xform(buf, pin); - pclose(pin); + if (pclose(pin) != 0) + fprintf(stderr, "%s: (%s): warning - bad status from \"%s\"\n", + progname, fname, buf); } else { printf("\n%s", buf); if (xac > 1) { @@ -456,7 +458,7 @@ o_default( /* pass on arguments unchanged */ FILE *fin ) { - register int i; + int i; FUNARGS fa; if (readfargs(&fa, fin) != 1) @@ -492,7 +494,7 @@ addxform( /* add xf arguments to strings */ FILE *fin ) { - register int i; + int i; int resetarr = 0; FUNARGS fa; @@ -553,7 +555,7 @@ m_glow( /* transform arguments for proximity light * if (readfargs(&fa, fin) != 1) return(-1); - if (fa.nsargs != 0 || fa.nfargs != 4) + if ((fa.nsargs != 0) | (fa.nfargs != 4)) return(-1); printf("0\n0\n4"); printf(" %18.12g %18.12g %18.12g", @@ -574,7 +576,7 @@ m_spot( /* transform arguments for spotlight */ if (readfargs(&fa, fin) != 1) return(-1); - if (fa.nsargs != 0 || fa.nfargs != 7) + if ((fa.nsargs != 0) | ( fa.nfargs != 7)) return(-1); printf("0\n0\n7"); printf(" %18.12g %18.12g %18.12g %18.12g\n", @@ -605,7 +607,7 @@ m_mist( /* transform arguments for mist */ else for (i = 0; i < fa.nsargs; i++) { char sname[256], *sp; - register char *cp1, *cp2 = sname; + char *cp1, *cp2 = sname; /* add idprefix */ for (sp = fa.sarg[i]; *sp; sp = cp1) { for (cp1 = idprefix; *cp1; ) @@ -775,7 +777,7 @@ o_face( /* transform face arguments */ ) { FVECT p; - register int i; + int i; FUNARGS fa; if (readfargs(&fa, fin) != 1) @@ -889,7 +891,7 @@ o_ring( /* transform ring arguments */ void initotypes(void) /* initialize ofun[] array */ { - register int i; + int i; if (ofun[OBJ_SOURCE].funp == o_source) return; /* done already */ @@ -929,6 +931,7 @@ initotypes(void) /* initialize ofun[] array */ tinvers[OBJ_CYLINDER] = OBJ_TUBE; tinvers[OBJ_TUBE] = OBJ_CYLINDER; tinvers[OBJ_INSTANCE] = OBJ_INSTANCE; /* oh, well */ + tinvers[OBJ_MESH] = OBJ_MESH; /* ditto */ } @@ -966,11 +969,11 @@ openmain( /* open input, changing directory for file static char origdir[PATH_MAX]; static char curfn[PATH_MAX]; static int diffdir; - register char *fpath; + char *fpath; if (iname == NULL) { /* standard input */ if (mainfp == NULL) { - register int c; + int c; strcpy(mainfn, "standard input"); if (nrept <= 1) { mainfp = stdin; @@ -1014,7 +1017,7 @@ openmain( /* open input, changing directory for file /* record path name */ strcpy(mainfn, fpath); if (expand) { /* change to local directory */ - register char *cp = fpath + strlen(fpath); /* get dir. */ + char *cp = fpath + strlen(fpath); /* get dir. */ while (cp > fpath) { cp--; if (ISDIRSEP(*cp)) {