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.4 by greg, Thu Aug 13 10:49:08 1992 UTC vs.
Revision 2.8 by greg, Fri Oct 2 16:22:51 1992 UTC

# Line 1 | Line 1
1 < /* Copyright (c) 1991 Regents of the University of California */
1 > /* Copyright (c) 1992 Regents of the University of California */
2  
3   #ifndef lint
4   static char SCCSid[] = "$SunId$ LBL";
# Line 12 | Line 12 | static char SCCSid[] = "$SunId$ LBL";
12  
13   #include <stdio.h>
14  
15 + #ifdef MSDOS
16 + #include <fcntl.h>
17 + #endif
18 +
19 + #include <math.h>
20 +
21   #include <errno.h>
22  
23   #include "color.h"
24  
25 < #include  "resolu.h"
25 > #include "resolu.h"
26  
27   #include "calcomp.h"
28  
# Line 34 | Line 40 | struct {
40  
41   int     nfiles;                         /* number of input files */
42  
43 + char    Command[] = "<Command>";
44   char    vcolin[3][4] = {"ri", "gi", "bi"};
45   char    vcolout[3][4] = {"ro", "go", "bo"};
46   char    vbrtin[] = "li";
# Line 63 | Line 70 | int    wrongformat = 0;
70  
71   FILE    *popen();
72  
73 + extern char     *emalloc();
74  
75 +
76   main(argc, argv)
77   int     argc;
78   char    *argv[];
# Line 71 | Line 80 | char   *argv[];
80          int     original;
81          double  f;
82          int     a, i;
83 + #ifdef MSDOS
84 +        extern int  _fmode;
85 +        _fmode = O_BINARY;
86 +        setmode(fileno(stdin), O_BINARY);
87 +        setmode(fileno(stdout), O_BINARY);
88 + #endif
89                                                  /* scan options */
90          for (a = 1; a < argc; a++) {
91                  if (argv[a][0] == '-')
# Line 125 | Line 140 | char   *argv[];
140                          }
141                  else {
142                          if (argv[a][0] == '!') {
143 <                                input[nfiles].name = "<Command>";
143 >                                input[nfiles].name = Command;
144                                  input[nfiles].fp = popen(argv[a]+1, "r");
145                          } else {
146                                  input[nfiles].name = argv[a];
# Line 334 | Line 349 | combine()                      /* combine pictures */
349  
350   advance()                       /* read in data for next scanline */
351   {
337        extern double  fabs();
352          int     ytarget;
353          register COLOR  *st;
354          register int    i, j;
# Line 453 | Line 467 | char   *msg;
467   }
468  
469  
456 #ifdef  NIX
457
458 quit(code)
459 int  code;
460 {
461        exit(code);
462 }
463
464 #else
465
466 #include  <signal.h>
467
470   quit(code)              /* exit gracefully */
471   int  code;
472   {
473 <        int  status;
474 <
475 <        if (code) {             /* abnormal exit -- kill children */
476 <                signal(SIGPIPE, SIG_IGN);
477 <                kill(0, SIGPIPE);
478 <        }
479 <                                /* reap any children */
478 <        while (wait(&status) != -1)
479 <                if (code == 0)
480 <                        code = status>>8 & 0xff;
473 >        register int  i;
474 >                                /* close input files */
475 >        for (i = 0; i < nfiles; i++)
476 >                if (input[i].name == Command)
477 >                        pclose(input[i].fp);
478 >                else
479 >                        fclose(input[i].fp);
480          exit(code);
481   }
483
484 #endif

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines