| 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; | 
| 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 |  |  |