Revision: 41490
          http://brlcad.svn.sourceforge.net/brlcad/?rev=41490&view=rev
Author:   brlcad
Date:     2010-12-01 06:19:37 +0000 (Wed, 01 Dec 2010)

Log Message:
-----------
more verbose quellage, now cross-platform to newer gcc on linux where we're 
catching lots of failures to check the return value on fwrite/fread/scanf.  add 
corresponding checks and failure handling.

Modified Paths:
--------------
    brlcad/trunk/src/util/ap-pix.c
    brlcad/trunk/src/util/bary.c
    brlcad/trunk/src/util/bw-pix.c
    brlcad/trunk/src/util/bw3-pix.c
    brlcad/trunk/src/util/bwcrop.c
    brlcad/trunk/src/util/bwdiff.c
    brlcad/trunk/src/util/bwfilter.c
    brlcad/trunk/src/util/bwrect.c
    brlcad/trunk/src/util/mac-pix.c
    brlcad/trunk/src/util/pixborder.c
    brlcad/trunk/src/util/pixpaste.c
    brlcad/trunk/src/util/pixrot.c
    brlcad/trunk/src/util/pl-X.c
    brlcad/trunk/src/util/plgetframe.c

Modified: brlcad/trunk/src/util/ap-pix.c
===================================================================
--- brlcad/trunk/src/util/ap-pix.c      2010-12-01 04:13:22 UTC (rev 41489)
+++ brlcad/trunk/src/util/ap-pix.c      2010-12-01 06:19:37 UTC (rev 41490)
@@ -50,6 +50,7 @@
 int
 main(int argc, char **argv)
 {
+    size_t ret;
     int i, bit;
     int line;
 
@@ -74,8 +75,13 @@
 
     line = 0;
     while ((int)fread(&cyaline, sizeof(cyaline), 1, cyafp) > 0) {
-       fread(&magline, sizeof(magline), 1, magfp);
-       fread(&yelline, sizeof(yelline), 1, yelfp);
+       ret = fread(&magline, sizeof(magline), 1, magfp);
+       ret += fread(&yelline, sizeof(yelline), 1, yelfp);
+       if (ret == 0) {
+           perror("fread");
+           bu_exit(1, "%s: read failure\n");
+       }
+
        line++;
 
        for (i = 0; i < 432; i++) {
@@ -83,7 +89,11 @@
                out.red = ((cyaline.cl[i]>>bit)&1) ? 0 : 255;
                out.green = ((magline.ml[i]>>bit)&1) ? 0 : 255;
                out.blue = ((yelline.yl[i]>>bit)&1) ? 0 : 255;
-               fwrite(&out, sizeof(out), 1, stdout);
+               ret = fwrite(&out, sizeof(out), 1, stdout);
+               if (ret == 0) {
+                   perror("fwrite");
+                   bu_exit(1, "%s: read failure\n");
+               }
            }
        }
        if (verbose)

Modified: brlcad/trunk/src/util/bary.c
===================================================================
--- brlcad/trunk/src/util/bary.c        2010-12-01 04:13:22 UTC (rev 41489)
+++ brlcad/trunk/src/util/bary.c        2010-12-01 06:19:37 UTC (rev 41490)
@@ -143,7 +143,7 @@
     int normalize = 0; /* Make all weights sum to one? */
     fastf_t *coeff;
     fastf_t x, y, z;
-    FILE *infp;
+    FILE *infp = NULL;
     struct bu_list site_list;
     struct bu_vls *tail_buf = 0;
     struct site *sp;

Modified: brlcad/trunk/src/util/bw-pix.c
===================================================================
--- brlcad/trunk/src/util/bw-pix.c      2010-12-01 04:13:22 UTC (rev 41489)
+++ brlcad/trunk/src/util/bw-pix.c      2010-12-01 06:19:37 UTC (rev 41490)
@@ -34,53 +34,48 @@
 #include "bu.h"
 
 
-unsigned char ibuf[1024], obuf[3*1024];
-
-
 int
 main(int argc, char **argv)
 {
+    unsigned char ibuf[1024], obuf[3*1024];
     size_t in, out, num;
     FILE *finp, *foutp;
 
     /* check for input file */
     if (argc > 1) {
-#if defined(_WIN32) && !defined(__CYGWIN__)
        if ((finp = fopen(argv[1], "rb")) == NULL) {
-#else
-           if ((finp = fopen(argv[1], "r")) == NULL) {
-#endif
-               bu_exit(1, "bw-pix: can't open \"%s\"\n", argv[1]);
-           }
-       } else
-           finp = stdin;
+           bu_exit(1, "bw-pix: can't open \"%s\"\n", argv[1]);
+       }
+    } else
+       finp = stdin;
 
-       /* check for output file */
-       if (argc > 2) {
-#if defined(_WIN32) && !defined(__CYGWIN__)
-           if ((foutp = fopen(argv[2], "wb")) == NULL) {
-#else
-               if ((foutp = fopen(argv[2], "w")) == NULL) {
-#endif
-                   bu_exit(2, "bw-pix: can't open \"%s\"\n", argv[2]);
-               }
-           } else
-               foutp = stdout;
+    /* check for output file */
+    if (argc > 2) {
+       if ((foutp = fopen(argv[2], "wb")) == NULL) {
+           bu_exit(2, "bw-pix: can't open \"%s\"\n", argv[2]);
+       }
+    } else
+       foutp = stdout;
 
-           if (argc > 3 || isatty(fileno(finp)) || isatty(fileno(foutp))) {
-               bu_exit(3, "Usage: bw-pix [in.bw] [out.pix]\n");
-           }
+    if (argc > 3 || isatty(fileno(finp)) || isatty(fileno(foutp))) {
+       bu_exit(3, "Usage: bw-pix [in.bw] [out.pix]\n");
+    }
 
-           while ((num = fread(ibuf, sizeof(char), 1024, finp)) > 0) {
-               for (in = out = 0; in < num; in++, out += 3) {
-                   obuf[out] = ibuf[in];
-                   obuf[out+1] = ibuf[in];
-                   obuf[out+2] = ibuf[in];
-               }
-               fwrite(obuf, sizeof(char), 3*num, foutp);
-           }
-           return 0;
+    while ((num = fread(ibuf, sizeof(char), 1024, finp)) > 0) {
+       size_t ret;
+       for (in = out = 0; in < num; in++, out += 3) {
+           obuf[out] = ibuf[in];
+           obuf[out+1] = ibuf[in];
+           obuf[out+2] = ibuf[in];
        }
+       ret = fwrite(obuf, sizeof(char), 3*num, foutp);
+       if (ret == 0) {
+           perror("fwrite");
+           break;
+       }
+    }
+    return 0;
+}
 
 /*
  * Local Variables:

Modified: brlcad/trunk/src/util/bw3-pix.c
===================================================================
--- brlcad/trunk/src/util/bw3-pix.c     2010-12-01 04:13:22 UTC (rev 41489)
+++ brlcad/trunk/src/util/bw3-pix.c     2010-12-01 06:19:37 UTC (rev 41490)
@@ -34,10 +34,6 @@
 #include "bu.h"
 
 
-unsigned char obuf[3*1024];
-unsigned char red[1024], green[1024], blue[1024];
-
-
 void
 open_file(FILE **fp, char *name)
 {
@@ -59,6 +55,9 @@
 int
 main(int argc, char **argv)
 {
+    unsigned char obuf[3*1024];
+    unsigned char red[1024], green[1024], blue[1024];
+
     int i;
     int nr, ng, nb, num;
     unsigned char *obufp;
@@ -95,7 +94,11 @@
            *obufp++ = green[i];
            *obufp++ = blue[i];
        }
-       fwrite(obuf, sizeof(char), num*3, stdout);
+       num = fwrite(obuf, sizeof(char), num*3, stdout);
+       if (num <= 0) {
+           perror("fwrite");
+           break;
+       }
     }
     return 0;
 }

Modified: brlcad/trunk/src/util/bwcrop.c
===================================================================
--- brlcad/trunk/src/util/bwcrop.c      2010-12-01 04:13:22 UTC (rev 41489)
+++ brlcad/trunk/src/util/bwcrop.c      2010-12-01 06:19:37 UTC (rev 41490)
@@ -89,11 +89,15 @@
 void
 fill_buffer(int y)
 {
+    size_t ret;
+
     buf_start = y - buflines/2;
     if (buf_start < 0) buf_start = 0;
 
     fseek(ifp, buf_start * scanlen, 0);
-    fread(buffer, scanlen, buflines, ifp);
+    ret = fread(buffer, scanlen, buflines, ifp);
+    if (ret == 0)
+       perror("fread");
 }
 
 
@@ -103,6 +107,7 @@
     float row, col, x1, y1, x2, y2, x, y;
     size_t yindex;
     char value;
+    size_t ret;
 
     if (argc < 3) {
        bu_exit(1, "%s", usage);
@@ -130,21 +135,37 @@
        unsigned long len;
        /* Get info */
        printf("Scanline length in input file: ");
-       scanf("%lu", &len);
+       ret = scanf("%lu", &len);
+       if (ret != 1)
+           perror("scanf");
        scanlen = len;
        if (scanlen <= 0) {
            bu_exit(4, "bwcrop: scanlen = %d, don't be ridiculous\n", scanlen);
        }
        printf("Line Length and Number of scan lines (in new file)?: ");
-       scanf("%f%f", &xnum, &ynum);
+       ret = scanf("%f%f", &xnum, &ynum);
+       if (ret != 1)
+           perror("scanf");
+
        printf("Upper left corner in input file (x, y)?: ");
-       scanf("%f%f", &ulx, &uly);
+       ret = scanf("%f%f", &ulx, &uly);
+       if (ret != 1)
+           perror("scanf");
+
        printf("Upper right corner (x, y)?: ");
-       scanf("%f%f", &urx, &ury);
+       ret = scanf("%f%f", &urx, &ury);
+       if (ret != 1)
+           perror("scanf");
+
        printf("Lower right (x, y)?: ");
-       scanf("%f%f", &lrx, &lry);
+       ret = scanf("%f%f", &lrx, &lry);
+       if (ret != 1)
+           perror("scanf");
+
        printf("Lower left (x, y)?: ");
-       scanf("%f%f", &llx, &lly);
+       ret = scanf("%f%f", &llx, &lly);
+       if (ret != 1)
+           perror("scanf");
     }
 
     /* See how many lines we can buffer */
@@ -180,7 +201,9 @@
            }
 
            value = buffer[ yindex * scanlen + round(x) ];
-           fwrite(&value, sizeof(value), 1, ofp);
+           ret = fwrite(&value, sizeof(value), 1, ofp);
+           if (ret == 0)
+               perror("fwrite");
        }
     }
 

Modified: brlcad/trunk/src/util/bwdiff.c
===================================================================
--- brlcad/trunk/src/util/bwdiff.c      2010-12-01 04:13:22 UTC (rev 41489)
+++ brlcad/trunk/src/util/bwdiff.c      2010-12-01 06:19:37 UTC (rev 41490)
@@ -71,6 +71,7 @@
 {
     unsigned char *p1, *p2, *op;
     int i, n, m;
+    size_t ret;
 
     while (argc > 3) {
        if (strcmp(argv[1], "-m") == 0) {
@@ -180,7 +181,11 @@
                }
                break;
        }
-       fwrite(&obuf[0], 1, n, stdout);
+       ret = fwrite(&obuf[0], 1, n, stdout);
+       if (ret == 0) {
+           perror("fwrite");
+           break;
+       }
     }
     return 0;
 }

Modified: brlcad/trunk/src/util/bwfilter.c
===================================================================
--- brlcad/trunk/src/util/bwfilter.c    2010-12-01 04:13:22 UTC (rev 41489)
+++ brlcad/trunk/src/util/bwfilter.c    2010-12-01 06:19:37 UTC (rev 41490)
@@ -141,6 +141,7 @@
     int x, y;
     int value, r1, r2, r3;
     int max, min;
+    size_t ret;
 
     /* Select Default Filter (low pass) */
     select_filter("low");
@@ -162,10 +163,18 @@
     bottom = &line1[0];
     middle = &line2[0];
     top    = &line3[0];
-    fread(bottom, sizeof(char), width, infp);
-    fread(middle, sizeof(char), width, infp);
-    fwrite(bottom, sizeof(char), width, stdout);
+    ret = fread(bottom, sizeof(char), width, infp);
+    if (ret == 0)
+       perror("fread");
 
+    ret = fread(middle, sizeof(char), width, infp);
+    if (ret == 0)
+       perror("fread");
+
+    ret = fwrite(bottom, sizeof(char), width, stdout);
+    if (ret == 0)
+       perror("fwrite");
+
     if (verbose) {
        for (x = 0; x < 11; x++)
            fprintf(stderr, "kern[%d] = %d\n", x, kern[x]);
@@ -176,7 +185,10 @@
 
     for (y = 1; y < height-1; y++) {
        /* read in top line */
-       fread(top, sizeof(char), width, infp);
+       ret = fread(top, sizeof(char), width, infp);
+       if (ret == 0)
+           perror("fread");
+
        obuf[0] = middle[0];
        /* Filter a line */
        for (x = 1; x < width-1; x++) {
@@ -198,7 +210,10 @@
                obuf[x] = value;
        }
        obuf[width-1] = middle[width-1];
-       fwrite(obuf, sizeof(char), width, stdout);
+       ret = fwrite(obuf, sizeof(char), width, stdout);
+       if (ret == 0)
+           perror("fwrite");
+
        /* Adjust row pointers */
        temp = bottom;
        bottom = middle;
@@ -206,7 +221,9 @@
        top = temp;
     }
     /* write out last line untouched */
-    fwrite(top, sizeof(char), width, stdout);
+    ret = fwrite(top, sizeof(char), width, stdout);
+    if (ret == 0)
+       perror("fwrite");
 
     /* Give advise on scaling factors */
     if (verbose)

Modified: brlcad/trunk/src/util/bwrect.c
===================================================================
--- brlcad/trunk/src/util/bwrect.c      2010-12-01 04:13:22 UTC (rev 41489)
+++ brlcad/trunk/src/util/bwrect.c      2010-12-01 06:19:37 UTC (rev 41490)
@@ -43,6 +43,7 @@
     FILE *ifp, *ofp;
     int row;
     long offset;
+    size_t ret;
 
     if (argc < 3) {
        bu_exit(1, "usage: bwrect infile outfile (I prompt!)\n");
@@ -56,11 +57,19 @@
 
     /* Get info */
     printf("Area to extract (x, y) in pixels ");
-    scanf("%d%d", &xnum, &ynum);
+    ret = scanf("%d%d", &xnum, &ynum);
+    if (ret != 2)
+       perror("scanf");
+
     printf("Origin to extract from (0, 0 is lower left) ");
-    scanf("%d%d", &xorig, &yorig);
+    ret = scanf("%d%d", &xorig, &yorig);
+    if (ret != 2)
+       perror("scanf");
+
     printf("Scan line length of input file ");
-    scanf("%d", &linelen);
+    ret = scanf("%d", &linelen);
+    if (ret != 1) {
+       perror("scanf");
 
     buf = (char *)bu_malloc(xnum, "buffer");
 
@@ -68,8 +77,17 @@
     for (row = 0+yorig; row < ynum+yorig; row++) {
        offset = row * linelen + xorig;
        fseek(ifp, offset, 0);
-       fread(buf, sizeof(*buf), xnum, ifp);
-       fwrite(buf, sizeof(*buf), xnum, ofp);
+       ret = fread(buf, sizeof(*buf), xnum, ifp);
+       if (ret == 0) {
+           perror("fread");
+           break;
+       }
+
+       ret = fwrite(buf, sizeof(*buf), xnum, ofp);
+       if (ret == 0) {
+           perror("fwrite");
+           break;
+       }
     }
 
     bu_free(buf, "buffer");

Modified: brlcad/trunk/src/util/mac-pix.c
===================================================================
--- brlcad/trunk/src/util/mac-pix.c     2010-12-01 04:13:22 UTC (rev 41489)
+++ brlcad/trunk/src/util/mac-pix.c     2010-12-01 06:19:37 UTC (rev 41490)
@@ -219,6 +219,7 @@
     int y1, y2, y3;            /* y zone widths */
     int first_x;               /* x: first pixel to be output in pix[] */
     int first_y;               /* y: first pixel to be output in pix[] */
+    size_t ret;
 
     if (!get_args(argc, argv) || isatty(fileno(stdout))) {
        (void)fputs(usage, stderr);
@@ -231,7 +232,11 @@
     if (scr_height == 0)
        scr_height = file_height;
 
-    fread((char *)&hdr, sizeof(hdr), 1, infp);
+    ret = fread((char *)&hdr, sizeof(hdr), 1, infp);
+    if (ret == 0) {
+       perror("fread");
+       break;
+    }
 
     /* x and y are in terms of 1st quadrant coordinates */
     /* Very first bit input is in upper right of screen */
@@ -296,34 +301,79 @@
     x3 = scr_width - x1 - x2;
 
     if (bwflag) {
-       for (y = 0; y < y1; y++)
-           fwrite(black, scr_width, 1, stdout);
+       for (y = 0; y < y1; y++) {
+           ret = fwrite(black, scr_width, 1, stdout);
+           if (ret == 0) {
+               perror("fwrite");
+               break;
+           }
+       }
        for (y = 0; y < y2; y++) {
-           fwrite(black, x1, 1, stdout);
-           fwrite(&pix[(file_width*(y+first_y))+first_x],
-                  x2, 1, stdout);
-           fwrite(black, x3, 1, stdout);
+           ret = fwrite(black, x1, 1, stdout);
+           if (ret == 0) {
+               perror("fwrite");
+               break;
+           }
+           ret = fwrite(&pix[(file_width*(y+first_y))+first_x], x2, 1, stdout);
+           if (ret == 0) {
+               perror("fwrite");
+               break;
+           }
+
+           ret = fwrite(black, x3, 1, stdout);
+           if (ret == 0) {
+               perror("fwrite");
+               break;
+           }
        }
-       for (y = 0; y < y3; y++)
-           fwrite(black, scr_width, 1, stdout);
+       for (y = 0; y < y3; y++) {
+           ret = fwrite(black, scr_width, 1, stdout);
+           if (ret == 0) {
+               perror("fwrite");
+               break;
+           }
+       }
     } else {
-       for (y = 0; y < y1; y++)
-           fwrite(black, scr_width, 3, stdout);
+       for (y = 0; y < y1; y++) {
+           ret = fwrite(black, scr_width, 3, stdout);
+           if (ret == 0) {
+               perror("fwrite");
+               break;
+           }
+       }
        for (y = 0; y < y2; y++) {
            unsigned char *cp;
 
-           fwrite(black, x1, 3, stdout);
+           ret = fwrite(black, x1, 3, stdout);
+           if (ret == 0) {
+               perror("fwrite");
+               break;
+           }
            cp = &pix[(file_width*(y+first_y))+first_x];
            for (x = 0; x < x2; x++) {
                if (*cp++)
-                   fwrite(color, 3, 1, stdout);
+                   ret = fwrite(color, 3, 1, stdout);
                else
-                   fwrite(black, 3, 1, stdout);
+                   ret = fwrite(black, 3, 1, stdout);
+
+               if (ret == 0) {
+                   perror("fwrite");
+                   break;
+               }
            }
-           fwrite(black, x3, 3, stdout);
+           ret = fwrite(black, x3, 3, stdout);
+           if (ret == 0) {
+               perror("fwrite");
+               break;
+           }
        }
-       for (y = 0; y < y3; y++)
-           fwrite(black, scr_width, 3, stdout);
+       for (y = 0; y < y3; y++) {
+           ret = fwrite(black, scr_width, 3, stdout);
+           if (ret == 0) {
+               perror("fwrite");
+               break;
+           }
+       }
     }
 
     return 0;

Modified: brlcad/trunk/src/util/pixborder.c
===================================================================
--- brlcad/trunk/src/util/pixborder.c   2010-12-01 04:13:22 UTC (rev 41489)
+++ brlcad/trunk/src/util/pixborder.c   2010-12-01 06:19:37 UTC (rev 41490)
@@ -564,7 +564,7 @@
        || (! read_row(inrow[next_row], file_width, infp)))
     {
        perror(file_name);
-       (void) fprintf(stderr, "pixborder:  fread() error\n");
+       fprintf(stderr, "pixborder:  fread() error\n");
        bu_exit (1, NULL);
     }
 

Modified: brlcad/trunk/src/util/pixpaste.c
===================================================================
--- brlcad/trunk/src/util/pixpaste.c    2010-12-01 04:13:22 UTC (rev 41489)
+++ brlcad/trunk/src/util/pixpaste.c    2010-12-01 06:19:37 UTC (rev 41490)
@@ -295,7 +295,10 @@
        result=fread(origbuf, num_bytes, org_width, orig);
        if (result != org_width) {
            (void)fprintf(stderr, "pixpaste: original image is short.\n");
-           (void)fwrite(origbuf, num_bytes, result, stdout);
+           result = fwrite(origbuf, num_bytes, result, stdout);
+           if (result == 0) {
+               perror("fwrite");
+           }
            bu_exit (0, NULL);
        }
        result = fwrite(origbuf, num_bytes, org_width, stdout);
@@ -326,7 +329,7 @@
        result = fwrite(origbuf, num_bytes, org_width, stdout);
        if (result != org_width) {
            perror("pixpaste: fwrite3");
-           bu_exit (3, NULL);
+           bu_exit(3, NULL);
        }
        row++;
     }
@@ -345,7 +348,7 @@
        result = fwrite(origbuf, num_bytes, org_width, stdout);
        if (result != org_width) {
            perror("pixpaste: fwrite4");
-           bu_exit (3, NULL);
+           bu_exit(3, NULL);
        }
        row++;
     }

Modified: brlcad/trunk/src/util/pixrot.c
===================================================================
--- brlcad/trunk/src/util/pixrot.c      2010-12-01 04:13:22 UTC (rev 41489)
+++ brlcad/trunk/src/util/pixrot.c      2010-12-01 06:19:37 UTC (rev 41490)
@@ -143,6 +143,7 @@
 {
     int x, y, j;
     long outbyte, outplace;
+    size_t ret;
 
     if (!get_args(argc, argv) || isatty(fileno(stdout))) {
        bu_exit(1, "%s", usage);
@@ -194,7 +195,11 @@
                    }
                    outplace = outbyte;
                }
-               fwrite(obuf, pixbytes, buflines, ofp);
+               ret = fwrite(obuf, pixbytes, buflines, ofp);
+               if (ret == 0) {
+                   perror("fwrite");
+                   break;
+               }
                outplace += (pixbytes * buflines);
            }
        } else if (minus90) {
@@ -215,7 +220,11 @@
                    }
                    outplace = outbyte;
                }
-               fwrite(obuf, pixbytes, buflines, ofp);
+               ret = fwrite(obuf, pixbytes, buflines, ofp);
+               if (ret == 0) {
+                   perror("fwrite");
+                   break;
+               }
                outplace += (pixbytes * buflines);
            }
        } else if (invert) {
@@ -228,13 +237,21 @@
                    }
                    outplace = outbyte;
                }
-               fwrite(&buffer[(y-firsty)*scanbytes], 1, scanbytes, ofp);
+               ret = fwrite(&buffer[(y-firsty)*scanbytes], 1, scanbytes, ofp);
+               if (ret == 0) {
+                   perror("fwrite");
+                   break;
+               }
                outplace += scanbytes;
            }
        } else {
            /* Reverse only */
            for (y = 0; y < buflines; y++) {
-               fwrite(&buffer[y*scanbytes], 1, scanbytes, ofp);
+               ret = fwrite(&buffer[y*scanbytes], 1, scanbytes, ofp);
+               if (ret == 0) {
+                   perror("fwrite");
+                   break;
+               }
            }
        }
 

Modified: brlcad/trunk/src/util/pl-X.c
===================================================================
--- brlcad/trunk/src/util/pl-X.c        2010-12-01 04:13:22 UTC (rev 41489)
+++ brlcad/trunk/src/util/pl-X.c        2010-12-01 06:19:37 UTC (rev 41490)
@@ -174,8 +174,9 @@
 {
     unsigned char in[8];
     double d;
+    size_t ret;
 
-    fread(in, 8, 1, stdin);
+    ret = fread(in, 8, 1, stdin);
     ntohd((unsigned char *)&d, in, 1);
     return d;
 }

Modified: brlcad/trunk/src/util/plgetframe.c
===================================================================
--- brlcad/trunk/src/util/plgetframe.c  2010-12-01 04:13:22 UTC (rev 41489)
+++ brlcad/trunk/src/util/plgetframe.c  2010-12-01 06:19:37 UTC (rev 41490)
@@ -166,16 +166,40 @@
                case TNONE:
                    break;
                case TCHAR:
-                   fread(buf, 1, up->narg, stdin);
-                   fwrite(buf, 1, up->narg, stdout);
+                   ret = fread(buf, 1, up->narg, stdin);
+                   if (ret == 0) {
+                       perror("fread");
+                       break;
+                   }
+                   ret = fwrite(buf, 1, up->narg, stdout);
+                   if (ret == 0) {
+                       perror("fwrite");
+                       break;
+                   }
                    break;
                case TSHORT:
-                   fread(buf, 2, up->narg, stdin);
-                   fwrite(buf, 2, up->narg, stdout);
+                   ret = fread(buf, 2, up->narg, stdin);
+                   if (ret == 0) {
+                       perror("fread");
+                       break;
+                   }
+                   ret = fwrite(buf, 2, up->narg, stdout);
+                   if (ret == 0) {
+                       perror("fwrite");
+                       break;
+                   }
                    break;
                case TIEEE:
-                   fread(buf, 8, up->narg, stdin);
-                   fwrite(buf, 8, up->narg, stdout);
+                   ret = fread(buf, 8, up->narg, stdin);
+                   if (ret == 0) {
+                       perror("fread");
+                       break;
+                   }
+                   ret = fwrite(buf, 8, up->narg, stdout);
+                   if (ret == 0) {
+                       perror("fwrite");
+                       break;
+                   }
                    break;
                case TSTRING:
                    while ((c = getchar()) != '\n' && c != EOF)
@@ -191,13 +215,25 @@
                case TNONE:
                    break;
                case TCHAR:
-                   fread(buf, 1, up->narg, stdin);
+                   ret = fread(buf, 1, up->narg, stdin);
+                   if (ret == 0) {
+                       perror("fread");
+                       break;
+                   }
                    break;
                case TSHORT:
-                   fread(buf, 2, up->narg, stdin);
+                   ret = fread(buf, 2, up->narg, stdin);
+                   if (ret == 0) {
+                       perror("fread");
+                       break;
+                   }
                    break;
                case TIEEE:
-                   fread(buf, 8, up->narg, stdin);
+                   ret = fread(buf, 8, up->narg, stdin);
+                   if (ret == 0) {
+                       perror("fread");
+                       break;
+                   }
                    break;
                case TSTRING:
                    while ((c = getchar()) != '\n' && c != EOF)


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------
Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
Tap into the largest installed PC base & get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to