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; |
262 |
|
for (i = 2; i < newac; i++) |
263 |
|
if (!strcmp(avp[i-1], "-n")) { |
264 |
|
oldid = avp[i]; |
265 |
+ |
newid = newidbuf; |
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 |
|
} |
274 |
|
if (oldid == NULL) { |
275 |
|
newav[0] = av[0]; |
276 |
|
newav[1] = "-n"; |
277 |
< |
newav[2] = newid; |
277 |
> |
newav[2] = newid = newidbuf; |
278 |
|
avp = newav; |
279 |
|
newac += 2; |
280 |
|
} |
283 |
|
else |
284 |
|
sprintf(newid, "%s.%d", oldid, k); |
285 |
|
err |= main(newac, avp); |
286 |
+ |
if (newid != NULL && newid != newidbuf) |
287 |
+ |
free((void *)newid); |
288 |
|
k++; |
289 |
|
} |
290 |
|
fclose(argfp); |
382 |
|
) |
383 |
|
{ |
384 |
|
FILE *pin; |
385 |
< |
char buf[512]; |
385 |
> |
char buf[2048]; |
386 |
|
int i; |
387 |
|
|
388 |
|
fgetline(buf, sizeof(buf), fin); |
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", |