Read 20 512-byte blocks at a time (like GNU tar).
diff --git a/tar.c b/tar.c
index 4702a5f..31443ee 100644
--- a/tar.c
+++ b/tar.c
@@ -330,7 +330,7 @@
size_t writeSize;
size_t readSize;
size_t actualWriteSz;
- char buffer[BUFSIZ];
+ char buffer[20 * TAR_BLOCK_SIZE];
size_t size = header->size;
int outFd=fileno(stdout);
@@ -354,9 +354,9 @@
if ( size > sizeof(buffer) )
writeSize = readSize = sizeof(buffer);
else {
- int mod = size % 512;
+ int mod = size % TAR_BLOCK_SIZE;
if ( mod != 0 )
- readSize = size + (512 - mod);
+ readSize = size + (TAR_BLOCK_SIZE - mod);
else
readSize = size;
writeSize = size;