summaryrefslogtreecommitdiff
path: root/src/head.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/head.c')
-rw-r--r--src/head.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/head.c b/src/head.c
index 21ace70b4..756c978c6 100644
--- a/src/head.c
+++ b/src/head.c
@@ -465,7 +465,7 @@ elide_tail_bytes_file (const char *filename, int fd, uintmax_t n_elide,
struct stat const *st, off_t current_pos)
{
off_t size = st->st_size;
- if (presume_input_pipe || size <= ST_BLKSIZE (*st))
+ if (presume_input_pipe || current_pos < 0 || size <= ST_BLKSIZE (*st))
return elide_tail_bytes_pipe (filename, fd, n_elide, current_pos);
else
{
@@ -754,7 +754,7 @@ elide_tail_lines_file (const char *filename, int fd, uintmax_t n_elide,
struct stat const *st, off_t current_pos)
{
off_t size = st->st_size;
- if (presume_input_pipe || size <= ST_BLKSIZE (*st))
+ if (presume_input_pipe || current_pos < 0 || size <= ST_BLKSIZE (*st))
return elide_tail_lines_pipe (filename, fd, n_elide, current_pos);
else
{