From 8a642c8c159497f355e4d2bfa69876f4f62aab04 Mon Sep 17 00:00:00 2001 From: Sam Hocevar Date: Fri, 12 Jan 2007 10:09:22 +0000 Subject: [PATCH] * Better line-buffered stdin reads. --- src/zzuf.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/zzuf.c b/src/zzuf.c index 74df71b..c9a46ff 100644 --- a/src/zzuf.c +++ b/src/zzuf.c @@ -263,8 +263,10 @@ int main(int argc, char *argv[]) for(;;) { - uint8_t buf[12]; - int ret = fread(buf, 1, 12, stdin); + uint8_t buf[BUFSIZ]; + int ret, off = 0, nw = 0; + + ret = read(0, buf, BUFSIZ); if(ret <= 0) break; @@ -273,8 +275,13 @@ int main(int argc, char *argv[]) if(md5) _zz_md5_add(ctx, buf, ret); - else - fwrite(buf, 1, ret, stdout); + else while(ret) + { + if((nw = write(1, buf + off, (size_t)ret)) < 0) + break; + ret -= nw; + off += nw; + } } if(md5)