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

Comparing ray/src/cal/rsplit.c (file contents):
Revision 1.12 by greg, Tue Mar 31 16:39:01 2020 UTC vs.
Revision 1.13 by greg, Sat Apr 4 16:23:00 2020 UTC

# Line 198 | Line 198 | main(int argc, char *argv[])
198                                  fputs(": bad option\n", stderr);
199                                  return(1);
200                          }
201 +                } else if (argv[i][0] == '.' && !argv[i][1]) {
202 +                        output[nfiles] = NULL;          /* discard data */
203 +                        termc[nfiles] = curterm;
204 +                        format[nfiles] = curfmt;
205 +                        ncomp[nfiles] = curncomp;
206 +                        bytsiz[nfiles++] = curbytes;
207                  } else if (argv[i][0] == '!') {
208                          needres |= (curflags & DORESOLU);
209                          termc[nfiles] = curterm;
# Line 256 | Line 262 | main(int argc, char *argv[])
262   #ifdef getc_unlocked                            /* avoid lock/unlock overhead */
263          flockfile(stdin);
264          for (i = nfiles; i--; )
265 <                flockfile(output[i]);
265 >                if (output[i] != NULL)
266 >                        flockfile(output[i]);
267   #endif
268                                                  /* load/copy header */
269          if (inpflags & DOHEADER && getheader(stdin, headline, NULL) < 0) {
# Line 313 | Line 320 | main(int argc, char *argv[])
320                                  if (getbinary(buf, bytsiz[i], ncomp[i],
321                                                          stdin) < ncomp[i])
322                                          break;
323 <                                if (putbinary(buf, bytsiz[i], ncomp[i],
323 >                                if (output[i] != NULL &&
324 >                                            putbinary(buf, bytsiz[i], ncomp[i],
325                                                          output[i]) < ncomp[i])
326                                          break;
327                          } else if (ncomp[i] > 1) {      /* N-field output */
# Line 321 | Line 329 | main(int argc, char *argv[])
329                                  while (n--) {
330                                          if (!scanOK(termc[i]))
331                                                  break;
332 <                                        if (fputs(buf, output[i]) == EOF)
332 >                                        if (output[i] != NULL &&
333 >                                                    fputs(buf, output[i]) == EOF)
334                                                  break;
335                                  }
336                                  if (n >= 0)             /* fell short? */
337                                          break;
338 <                                if (termc[i] != '\n')   /* add EOL if none */
338 >                                if ((output[i] != NULL) &  /* add EOL if none */
339 >                                                (termc[i] != '\n'))
340                                          fputc('\n', output[i]);
341                          } else {                        /* 1-field output */
342                                  if (!scanOK(termc[i]))
343                                          break;
344 <                                if (fputs(buf, output[i]) == EOF)
345 <                                        break;
346 <                                if (termc[i] != '\n')   /* add EOL if none */
347 <                                        fputc('\n', output[i]);
344 >                                if (output[i] != NULL) {
345 >                                        if (fputs(buf, output[i]) == EOF)
346 >                                                break;
347 >                                        if (termc[i] != '\n')   /* add EOL? */
348 >                                                fputc('\n', output[i]);
349 >                                }
350                          }
351                                                          /* skip input EOL? */
352                          if (!bininp && termc[nfiles-1] != '\n') {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines