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

Comparing ray/src/cal/lam.c (file contents):
Revision 1.21 by greg, Fri Jul 5 00:46:23 2019 UTC vs.
Revision 1.23 by greg, Tue Jul 16 15:59:49 2019 UTC

# Line 42 | Line 42 | main(int argc, char *argv[])
42                          switch (argv[i][1]) {
43                          case 't':
44                                  curtab = argv[i]+2;
45 +                                if (!*curtab) curtab = "\n";
46                                  break;
47                          case 'u':
48                                  unbuff = !unbuff;
# Line 145 | Line 146 | main(int argc, char *argv[])
146                          if (bytsiz[i] > 0) {            /* binary input */
147                                  if (getbinary(buf, bytsiz[i], 1, input[i]) < 1)
148                                          break;
149 <                                putbinary(buf, bytsiz[i], 1, stdout);
149 >                                if (putbinary(buf, bytsiz[i], 1, stdout) != 1)
150 >                                        break;
151                          } else if (bytsiz[i] < 0) {     /* multi-line input */
152                                  int     n = -bytsiz[i];
153                                  while (n--) {
# Line 154 | Line 156 | main(int argc, char *argv[])
156                                          if ((i > 0) | (n < -bytsiz[i]-1))
157                                                  fputs(tabc[i], stdout);
158                                          buf[strlen(buf)-1] = '\0';
159 <                                        fputs(buf, stdout);
159 >                                        if (fputs(buf, stdout) == EOF)
160 >                                                break;
161                                  }
162                                  if (n >= 0)             /* fell short? */
163                                          break;
# Line 164 | Line 167 | main(int argc, char *argv[])
167                                  if (i)
168                                          fputs(tabc[i], stdout);
169                                  buf[strlen(buf)-1] = '\0';
170 <                                fputs(buf, stdout);
170 >                                if (fputs(buf, stdout) == EOF)
171 >                                        break;
172                          }
173                  }
174                  if (i < nfiles)
# Line 175 | Line 179 | main(int argc, char *argv[])
179                          fflush(stdout);
180          } while (--incnt);
181                                                          /* check ending */
182 +        if (fflush(stdout) == EOF) {
183 +                fputs(argv[0], stderr);
184 +                fputs(": write error on standard output\n", stderr);
185 +                return(1);
186 +        }
187          if (incnt > 0) {
188                  fputs(argv[0], stderr);
189                  fputs(": warning: premature EOD\n", stderr);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines