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

Comparing ray/src/hd/rhoptimize.c (file contents):
Revision 3.19 by greg, Sun Sep 26 15:39:10 2010 UTC vs.
Revision 3.24 by greg, Mon Feb 6 22:40:21 2023 UTC

# Line 40 | Line 40 | main(
40   {
41          char    *inpname, *outname;
42          int     hdfd[2];
43 <        int32   nextipos, lastopos, thisopos;
43 >        off_t   nextipos, lastopos, thisopos;
44  
45          progname = argv[0];
46          argv++; argc--;                 /* duplicate checking flag? */
# Line 72 | Line 72 | main(
72          }
73                                          /* copy holodeck file header */
74          nextipos = rhinitcopy(hdfd, inpname, outname);
75 <        lastopos = 0L;                  /* copy sections one by one */
75 >        lastopos = 0;                   /* copy sections one by one */
76          while (nextipos != 0L) {
77                                          /* set input position; get next */
78 <                lseek(hdfd[0], (off_t)nextipos, SEEK_SET);
78 >                lseek(hdfd[0], nextipos, SEEK_SET);
79                  read(hdfd[0], (char *)&nextipos, sizeof(nextipos));
80                                          /* get output position; set last */
81                  thisopos = lseek(hdfd[1], (off_t)0, SEEK_END);
82 <                if (lastopos > 0L) {
83 <                        lseek(hdfd[1], (off_t)lastopos, SEEK_SET);
82 >                if (lastopos > 0) {
83 >                        lseek(hdfd[1], lastopos, SEEK_SET);
84                          write(hdfd[1], (char *)&thisopos, sizeof(thisopos));
85                          lseek(hdfd[1], (off_t)0, SEEK_END);
86                  }
87                  lastopos = thisopos;
88 <                thisopos = 0L;          /* write place holder */
88 >                thisopos = 0;           /* write place holder */
89                  write(hdfd[1], (char *)&thisopos, sizeof(thisopos));
90                                          /* copy holodeck section */
91                  copysect(hdfd[0], hdfd[1]);
# Line 98 | Line 98 | main(
98                                  outname, inpname);
99                  error(SYSTEM, errmsg);
100          }
101 <        return 0;
101 >        return(0);
102   }
103  
104  
# Line 112 | Line 112 | rhinitcopy(    /* open files and copy header */
112          FILE    *infp, *outfp;
113          long    ifpos;
114                                          /* open files for i/o */
115 <        if ((infp = fopen(infn, "r")) == NULL) {
115 >        if ((infp = fopen(infn, "rb")) == NULL) {
116                  sprintf(errmsg, "cannot open \"%s\" for reading", infn);
117                  error(SYSTEM, errmsg);
118          }
# Line 120 | Line 120 | rhinitcopy(    /* open files and copy header */
120                  sprintf(errmsg, "output file \"%s\" already exists!", outfn);
121                  error(USER, errmsg);
122          }
123 <        if ((outfp = fopen(outfn, "w+")) == NULL) {
123 >        if ((outfp = fopen(outfn, "wb+")) == NULL) {
124                  sprintf(errmsg, "cannot open \"%s\" for writing", outfn);
125                  error(SYSTEM, errmsg);
126          }
127                                          /* set up signal handling */
128 + #ifdef SIGINT
129          if (signal(SIGINT, quit) == SIG_IGN) signal(SIGINT, SIG_IGN);
130 + #endif
131 + #ifdef SIGHUP
132          if (signal(SIGHUP, quit) == SIG_IGN) signal(SIGHUP, SIG_IGN);
133 + #endif
134 + #ifdef SIGTERM
135          if (signal(SIGTERM, quit) == SIG_IGN) signal(SIGTERM, SIG_IGN);
136 + #endif
137   #ifdef SIGXCPU
138          if (signal(SIGXCPU, quit) == SIG_IGN) signal(SIGXCPU, SIG_IGN);
139          if (signal(SIGXFSZ, quit) == SIG_IGN) signal(SIGXFSZ, SIG_IGN);
# Line 156 | Line 162 | rhinitcopy(    /* open files and copy header */
162  
163   static int
164   nuniq(                  /* sort unique rays to front of beam list */
165 <        register RAYVAL *rva,
165 >        RAYVAL  *rva,
166          int     n
167   )
168   {
169 <        register int    i, j;
169 >        int     i, j;
170          RAYVAL  rtmp;
171  
172          for (j = 0; j < n; j++)
# Line 188 | Line 194 | bpcmp(                 /* compare beam positions on disk */
194          const void      *b2p
195   )
196   {
197 <        register off_t  pdif = beamdir[*(int*)b1p].fo - beamdir[*(int*)b2p].fo;
197 >        off_t   pdif = beamdir[*(int*)b1p].fo - beamdir[*(int*)b2p].fo;
198  
199          if (pdif < 0L) return(-1);
200          return(pdif > 0L);
# Line 203 | Line 209 | xferclump(             /* transfer the given clump to hout and fr
209          int     nb
210   )
211   {
212 <        register int    i;
213 <        register BEAM   *bp;
212 >        int     i;
213 >        BEAM    *bp;
214          int     n;
215  
216          beamdir = hp->bi;               /* sort based on file position */
# Line 242 | Line 248 | copysect(              /* copy holodeck section from ifd to ofd */
248  
249  
250   void
251 < eputs(s)                        /* put error message to stderr */
246 < register char  *s;
251 > eputs(const char *s)                    /* put error message to stderr */
252   {
253          static int  midline = 0;
254  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines