summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/head.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/head.c b/src/head.c
index 00e1be17c..5411a3c0e 100644
--- a/src/head.c
+++ b/src/head.c
@@ -739,18 +739,17 @@ elide_tail_lines_file (const char *filename, int fd, uintmax_t n_elide)
off_t start_pos = lseek (fd, 0, SEEK_CUR);
off_t end_pos = lseek (fd, 0, SEEK_END);
- if (0 <= start_pos && start_pos < end_pos)
+ if (0 <= start_pos && 0 <= end_pos)
{
- /* If the file is empty, we're done. */
- if (end_pos == 0)
+ /* If no data to read we're done. */
+ if (start_pos >= end_pos)
return true;
return elide_tail_lines_seekable (filename, fd, n_elide,
start_pos, end_pos);
}
- /* lseek failed or the end offset precedes start.
- Fall through. */
+ /* lseek failed, Fall through... */
}
return elide_tail_lines_pipe (filename, fd, n_elide);