| 113 |
|
|
| 114 |
|
char errmsg[128]; |
| 115 |
|
|
| 116 |
< |
extern BYTE clrtab[256][3]; /* global color map */ |
| 116 |
> |
BYTE clrtab[256][3]; /* global color map */ |
| 117 |
|
|
| 118 |
|
extern long ftell(); |
| 119 |
|
|
| 214 |
|
|
| 215 |
|
init(argc, argv); /* get file and open window */ |
| 216 |
|
|
| 217 |
– |
if (parent < 0) { |
| 218 |
– |
kill(getppid(), SIGCONT); /* signal parent if child */ |
| 219 |
– |
sigrecv--; |
| 220 |
– |
} |
| 217 |
|
for ( ; ; ) |
| 218 |
|
getevent(); /* main loop */ |
| 219 |
|
userr: |
| 272 |
|
if (gamstr == NULL) /* get it from the X server */ |
| 273 |
|
gamstr = XGetDefault(thedisplay, "radiance", "gamma"); |
| 274 |
|
if (gamstr == NULL) /* get it from the environment */ |
| 275 |
< |
gamstr = getenv("GAMMA"); |
| 275 |
> |
gamstr = getenv("DISPLAY_GAMMA"); |
| 276 |
|
if (gamstr != NULL) |
| 277 |
|
gamcor = atof(gamstr); |
| 278 |
|
/* get best visual for default screen */ |
| 349 |
|
XSetWMProtocols(thedisplay, wind, &closedownAtom, 1); |
| 350 |
|
|
| 351 |
|
XMapWindow(thedisplay, wind); |
| 356 |
– |
return; |
| 352 |
|
} /* end of init */ |
| 353 |
|
|
| 354 |
|
|
| 361 |
|
if (es = err != NULL) |
| 362 |
|
fprintf(stderr, "%s: %s: %s\n", progname, |
| 363 |
|
fname==NULL?"<stdin>":fname, err); |
| 364 |
< |
if (parent > 0 & wind != 0) { |
| 365 |
< |
XDestroyWindow(thedisplay, wind); |
| 366 |
< |
XFlush(thedisplay); |
| 372 |
< |
} else if (parent < 0 & sigrecv == 0) |
| 364 |
> |
if (thedisplay != NULL) |
| 365 |
> |
XCloseDisplay(thedisplay); |
| 366 |
> |
if (parent < 0 & sigrecv == 0) |
| 367 |
|
kill(getppid(), SIGCONT); |
| 368 |
|
while (parent > 0 && wait(&cs) != -1) { /* wait for any children */ |
| 369 |
|
if (es == 0) |
| 557 |
|
map_rcolors(ourras, wind); |
| 558 |
|
if (fast) |
| 559 |
|
make_rpixmap(ourras, wind); |
| 560 |
+ |
if (parent < 0 & sigrecv == 0) { /* notify parent */ |
| 561 |
+ |
kill(getppid(), SIGCONT); |
| 562 |
+ |
sigrecv--; |
| 563 |
+ |
} |
| 564 |
|
break; |
| 565 |
|
case UnmapNotify: |
| 566 |
|
if (!fast) |
| 998 |
|
/* set gamma correction */ |
| 999 |
|
setcolrgam(gamcor); |
| 1000 |
|
/* make histogram */ |
| 1001 |
< |
new_histo(); |
| 1001 |
> |
if (new_histo((long)xmax*ymax) == -1) |
| 1002 |
> |
quiterr("cannot initialize histogram"); |
| 1003 |
|
for (y = 0; y < ymax; y++) { |
| 1004 |
|
if (getscan(y) < 0) |
| 1005 |
|
break; |