include fixes
[unix-history] / usr / src / sys / stand.att / copy.c
index e6bc28e..2a29cca 100644 (file)
@@ -1,4 +1,4 @@
-/*     copy.c  4.3     83/02/18        */
+/*     copy.c  4.5     83/02/24        */
 
 /*
  * Copy from to in 10K units.
 
 /*
  * Copy from to in 10K units.
@@ -26,16 +26,21 @@ main()
                                record, errno);
                        break;
                }
                                record, errno);
                        break;
                }
-               if (rcc != sizeof (buffer))
+               if (rcc < sizeof (buffer))
                        printf("Record %d: read short; expected %d, got %d\n",
                                record, sizeof (buffer), rcc);
                        printf("Record %d: read short; expected %d, got %d\n",
                                record, sizeof (buffer), rcc);
+               /*
+                * For bug in ht driver.
+                */
+               if (rcc > sizeof (buffer))
+                       rcc = sizeof (buffer);
                wcc = write(to, buffer, rcc);
                if (wcc < 0) {
                        printf("Record %d: write error: errno=%d\n",
                                record, errno);
                        break;
                }
                wcc = write(to, buffer, rcc);
                if (wcc < 0) {
                        printf("Record %d: write error: errno=%d\n",
                                record, errno);
                        break;
                }
-               if (wcc != rcc) {
+               if (wcc < rcc) {
                        printf("Record %d: write short; expected %d, got %d\n",
                                record, rcc, wcc);
                        break;
                        printf("Record %d: write short; expected %d, got %d\n",
                                record, rcc, wcc);
                        break;