aboutsummaryrefslogtreecommitdiff
path: root/usr.bin/tail
diff options
context:
space:
mode:
authorAdam David <adam@FreeBSD.org>1996-07-30 13:11:43 +0000
committerAdam David <adam@FreeBSD.org>1996-07-30 13:11:43 +0000
commit49a598ab871d98eba3cd0a21937b729716727cbb (patch)
treeb6ca9a0d0964a44c50564db82f2f4288e3907a16 /usr.bin/tail
parent50f56e483ad735716aa51d0ba798a096cd772bc7 (diff)
Notes
Diffstat (limited to 'usr.bin/tail')
-rw-r--r--usr.bin/tail/extern.h4
-rw-r--r--usr.bin/tail/read.c8
-rw-r--r--usr.bin/tail/reverse.c5
3 files changed, 11 insertions, 6 deletions
diff --git a/usr.bin/tail/extern.h b/usr.bin/tail/extern.h
index 65efc144f5a8..f1daa9b2de2e 100644
--- a/usr.bin/tail/extern.h
+++ b/usr.bin/tail/extern.h
@@ -42,8 +42,8 @@ enum STYLE { NOTSET = 0, FBYTES, FLINES, RBYTES, RLINES, REVERSE };
void forward __P((FILE *, enum STYLE, long, struct stat *));
void reverse __P((FILE *, enum STYLE, long, struct stat *));
-void bytes __P((FILE *, off_t));
-void lines __P((FILE *, off_t));
+int bytes __P((FILE *, off_t));
+int lines __P((FILE *, off_t));
void err __P((int fatal, const char *fmt, ...));
void ierr __P((void));
diff --git a/usr.bin/tail/read.c b/usr.bin/tail/read.c
index ad29dbd91763..94f3f0b515a6 100644
--- a/usr.bin/tail/read.c
+++ b/usr.bin/tail/read.c
@@ -58,7 +58,7 @@ static char sccsid[] = "@(#)read.c 8.1 (Berkeley) 6/6/93";
* it is displayed from the character closest to the beginning of the input to
* the end.
*/
-void
+int
bytes(fp, off)
register FILE *fp;
off_t off;
@@ -80,7 +80,7 @@ bytes(fp, off)
}
if (ferror(fp)) {
ierr();
- return;
+ return 1;
}
if (rflag) {
@@ -125,7 +125,7 @@ bytes(fp, off)
* it is displayed from the line closest to the beginning of the input to
* the end.
*/
-void
+int
lines(fp, off)
register FILE *fp;
off_t off;
@@ -171,7 +171,7 @@ lines(fp, off)
}
if (ferror(fp)) {
ierr();
- return;
+ return 1;
}
if (cnt) {
lines[recno].l = sp;
diff --git a/usr.bin/tail/reverse.c b/usr.bin/tail/reverse.c
index 34cd980726a7..455706444943 100644
--- a/usr.bin/tail/reverse.c
+++ b/usr.bin/tail/reverse.c
@@ -200,6 +200,11 @@ r_buf(fp)
len < BSZ && (ch = getc(fp)) != EOF; ++len)
*p++ = ch;
+ if (ferror(fp)) {
+ ierr();
+ return;
+ }
+
/*
* If no input data for this block and we tossed some data,
* recover it.