ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/px/pcomb.c
(Generate patch)

Comparing ray/src/px/pcomb.c (file contents):
Revision 2.3 by greg, Mon Aug 10 12:10:26 1992 UTC vs.
Revision 2.4 by greg, Thu Aug 13 10:49:08 1992 UTC

# Line 334 | Line 334 | combine()                      /* combine pictures */
334  
335   advance()                       /* read in data for next scanline */
336   {
337 +        extern double  fabs();
338          int     ytarget;
339          register COLOR  *st;
340          register int    i, j;
# Line 346 | Line 347 | advance()                      /* read in data for next scanline */
347                          input[i].scan[0] = st;
348                          if (yscan <= MIDSCN)            /* hit bottom? */
349                                  continue;
350 <                        if (freadscan(st, xmax, input[i].fp) < 0) {     /* read */
350 >                        if (freadscan(st, xmax, input[i].fp) < 0) {  /* read */
351                                  eputs(input[i].name);
352                                  eputs(": read error\n");
353                                  quit(1);
354                          }
355 <                        for (j = 0; j < xmax; j++)      /* adjust color */
356 <                                multcolor(st[j], input[i].coef);
355 >                        if (fabs(colval(input[i].coef,RED)-1.0) > 1e-3 ||
356 >                                fabs(colval(input[i].coef,GRN)-1.0) > 1e-3 ||
357 >                                fabs(colval(input[i].coef,BLU)-1.0) > 1e-3)
358 >                                for (j = 0; j < xmax; j++)  /* adjust color */
359 >                                        multcolor(st[j], input[i].coef);
360                  }
361   }
362  
# Line 449 | Line 453 | char   *msg;
453   }
454  
455  
456 + #ifdef  NIX
457 +
458   quit(code)
459 < int     code;
459 > int  code;
460   {
461 +        exit(code);
462 + }
463 +
464 + #else
465 +
466 + #include  <signal.h>
467 +
468 + quit(code)              /* exit gracefully */
469 + int  code;
470 + {
471          int  status;
472  
473 <        if (code == 0)                  /* reap any children */
474 <                while (wait(&status) != -1)
475 <                        if (code == 0)
476 <                                code = status>>8 & 0xff;
473 >        if (code) {             /* abnormal exit -- kill children */
474 >                signal(SIGPIPE, SIG_IGN);
475 >                kill(0, SIGPIPE);
476 >        }
477 >                                /* reap any children */
478 >        while (wait(&status) != -1)
479 >                if (code == 0)
480 >                        code = status>>8 & 0xff;
481          exit(code);
482   }
483 +
484 + #endif

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines