From: Paul Eggert Date: Wed, 23 Jul 2025 05:05:17 +0000 (-0700) Subject: tail: simplify -c+ on regular files X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c667ca229f3bed2b6d2ea16312f607d8d385e4c3;p=thirdparty%2Fcoreutils.git tail: simplify -c+ on regular files * src/tail.c (tail_bytes): Simplify the -c+N case by treating regular files like other files; if the lseek fails for whatever reason, fall back on the unoptimized version instead of reporting a fatal error. --- diff --git a/src/tail.c b/src/tail.c index ac66c9aa50..caf67a0500 100644 --- a/src/tail.c +++ b/src/tail.c @@ -1858,9 +1858,7 @@ tail_bytes (char const *pretty_filename, int fd, uintmax_t n_bytes, if (from_start) { if (! presume_input_pipe && n_bytes <= OFF_T_MAX - && ((S_ISREG (stats.st_mode) - && xlseek (fd, n_bytes, SEEK_CUR, pretty_filename) >= 0) - || lseek (fd, n_bytes, SEEK_CUR) != -1)) + && 0 <= lseek (fd, n_bytes, SEEK_CUR)) *read_pos += n_bytes; else {