aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/core/cat.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/core/cat.c')
-rw-r--r--src/cmd/core/cat.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/cmd/core/cat.c b/src/cmd/core/cat.c
index aeed1be..92b082d 100644
--- a/src/cmd/core/cat.c
+++ b/src/cmd/core/cat.c
@@ -11,15 +11,16 @@ usage(void)
static void
cat(int fd, char *s)
{
+ int err;
intptr nr, nw;
char buf[8192];
- while(!(sys·read(fd, buf, sizeof(buf), &nr))){
+ while(!(err=sys·read(fd, buf, sizeof(buf), &nr)) && nr>0){
if(sys·write(1, buf, nr, &nw) || nr != nw)
fmt·panic("write error copying %s: %r", s);
}
- if(nr<0)
+ if(err)
fmt·panic("error reading %s: %r", s);
}