]> git.donarmstrong.com Git - samtools.git/blobdiff - knetfile.c
Release samtools-0.1.5c (fixed a bug in piping)
[samtools.git] / knetfile.c
index 12dc2d17af733d2c5bb93870a3285833fdb063cd..cef197dd08b0b29e97be7a3dade6cac54d244c46 100644 (file)
@@ -226,7 +226,12 @@ off_t knet_read(knetFile *fp, void *buf, off_t len)
        off_t l = 0;
        if (fp->fd < 0) return 0;
        if (fp->type == KNF_TYPE_LOCAL) {
-               l = read(fp->fd, buf, len);
+               off_t rest = len, curr;
+               while (rest) {
+                       curr = read(fp->fd, buf + l, rest);
+                       if (curr == 0) break;
+                       l += curr; rest -= curr;
+               }
                fp->offset += l;
        } else {
                off_t rest = len, curr;