| 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; |
| 134 |
|
|
| 135 |
|
a += xf(&tot, argc-a, argv+a); |
| 136 |
|
|
| 137 |
< |
if ( (reverse = tot.sca < 0.0) ) |
| 137 |
> |
if ( (reverse = (tot.sca < 0.0)) ) |
| 138 |
|
tot.sca = -tot.sca; |
| 139 |
|
if (invert) |
| 140 |
|
reverse = !reverse; |
| 167 |
|
} |
| 168 |
|
|
| 169 |
|
if (mal_prefix) |
| 170 |
< |
free((void *)idprefix); |
| 170 |
> |
free(idprefix); |
| 171 |
|
return(0); |
| 172 |
|
} |
| 173 |
|
|
| 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; |
| 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 |
|
} |
| 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); |
| 424 |
|
progname, fname, typ); |
| 425 |
|
exit(1); |
| 426 |
|
} |
| 427 |
< |
if (ismodifier(fn)) |
| 428 |
< |
printf("\n%s %s ", nam, typ); |
| 429 |
< |
else |
| 430 |
< |
printf("\n%s %s ", newmod != NULL ? newmod : nam, |
| 431 |
< |
invert ? ofun[tinvers[fn]].funame : typ); |
| 427 |
> |
putchar('\n'); |
| 428 |
> |
if (ismodifier(fn)) { |
| 429 |
> |
fputword(nam, stdout); |
| 430 |
> |
printf(" %s ", typ); |
| 431 |
> |
} else { |
| 432 |
> |
fputword(newmod != NULL ? newmod : nam, stdout); |
| 433 |
> |
printf(" %s ", invert ? ofun[tinvers[fn]].funame : typ); |
| 434 |
> |
} |
| 435 |
|
/* object name */ |
| 436 |
|
fgetword(nam, sizeof(nam), fin); |
| 437 |
|
if (idprefix == NULL || ismodifier(fn)) |
| 438 |
< |
printf("%s\n", nam); |
| 439 |
< |
else |
| 440 |
< |
printf("%s.%s\n", idprefix, nam); |
| 438 |
> |
fputword(nam, stdout); |
| 439 |
> |
else { |
| 440 |
> |
char nnam[MAXSTR]; |
| 441 |
> |
sprintf(nnam, "%s.%s", idprefix, nam); |
| 442 |
> |
fputword(nnam, stdout); |
| 443 |
> |
} |
| 444 |
> |
putchar('\n'); |
| 445 |
|
/* transform arguments */ |
| 446 |
|
if ((*ofun[fn].funp)(fin) < 0) { |
| 447 |
|
fprintf(stderr, "%s: (%s): bad %s \"%s\"\n", |
| 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 |
|
|