| 350 |
|
quiterr(err) /* print message and exit */ |
| 351 |
|
char *err; |
| 352 |
|
{ |
| 353 |
< |
if (err != NULL) |
| 353 |
> |
register int es; |
| 354 |
> |
int cs; |
| 355 |
> |
|
| 356 |
> |
if (es = err != NULL) |
| 357 |
|
fprintf(stderr, "%s: %s: %s\n", progname, |
| 358 |
|
fname==NULL?"<stdin>":fname, err); |
| 359 |
< |
if (wind) { |
| 359 |
> |
if (parent > 0 & wind != 0) { |
| 360 |
|
XDestroyWindow(thedisplay, wind); |
| 361 |
|
XFlush(thedisplay); |
| 362 |
|
} |
| 363 |
< |
while (parent > 0 && wait(0) != -1) /* wait for any children */ |
| 363 |
> |
while (parent > 0 && wait(&cs) != -1) { /* wait for any children */ |
| 364 |
> |
if (es == 0) |
| 365 |
> |
es = cs>>8 & 0xff; |
| 366 |
|
parent--; |
| 367 |
< |
exit(err != NULL); |
| 367 |
> |
} |
| 368 |
> |
exit(es); |
| 369 |
|
} |
| 370 |
|
|
| 371 |
|
|