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.3 by greg, Fri Jul 5 02:26:16 2019 UTC vs.
Revision 1.4 by greg, Fri Jul 5 15:04:20 2019 UTC

# Line 296 | Line 296 | main(int argc, char *argv[])
296                          if (bytsiz[i] > 0) {            /* binary output */
297                                  if (getbinary(buf, bytsiz[i], 1, stdin) < 1)
298                                          break;
299 <                                putbinary(buf, bytsiz[i], 1, output[i]);
299 >                                if (putbinary(buf, bytsiz[i], 1, output[i]) != 1)
300 >                                        break;
301                          } else if (bytsiz[i] < 0) {     /* N-field output */
302                                  int     n = -bytsiz[i];
303                                  while (n--) {
304                                          if (!scanOK(termc[i]))
305                                                  break;
306 <                                        fputs(buf, output[i]);
306 >                                        if (fputs(buf, output[i]) == EOF)
307 >                                                break;
308                                  }
309                                  if (n >= 0)             /* fell short? */
310                                          break;
311 +                                if (termc[i] != '\n')   /* add EOL if none */
312 +                                        fputc('\n', output[i]);
313                          } else {                        /* 1-field output */
314                                  if (!scanOK(termc[i]))
315                                          break;
316 <                                fputs(buf, output[i]);
316 >                                if (fputs(buf, output[i]) == EOF)
317 >                                        break;
318 >                                if (termc[i] != '\n')   /* add EOL if none */
319 >                                        fputc('\n', output[i]);
320                          }
321                  }
322                  if (i < nfiles)
323                          break;
324          } while (--outcnt);
325                                                          /* check ending */
319        if (outcnt > 0) {
320                fputs(argv[0], stderr);
321                fputs(": warning: premature EOD\n", stderr);
322        }
326          if (fflush(NULL) == EOF) {
327                  fputs(argv[0], stderr);
328                  fputs(": write error on one or more outputs\n", stderr);
329                  return(1);
330 +        }
331 +        if (outcnt > 0) {
332 +                fputs(argv[0], stderr);
333 +                fputs(": warning: premature EOD\n", stderr);
334          }
335          return(0);
336   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines