This was seen to be an issue when following a
symlink that was being updated to point to
different underlying devices.
* src/tail.c (recheck): Guard the lseek() call to only
be performed for regular files.
* NEWS: Mention the bug fix.
Previously it may have output 1 character too wide for certain widths.
[bug introduced in coreutils-5.3]
+ tail --follow=name works again with non seekable files. Previously it
+ exited with an "Illegal seek" error when such a file was replaced.
+ [bug introduced in fileutils-4.1.6]
+
`wc -c` will again efficiently determine the size of large files
on all systems. It no longer redundantly reads data from certain
sized files larger than SIZE_MAX.
{
/* Start at the beginning of the file. */
record_open_fd (f, fd, 0, &new_stats, (is_stdin ? -1 : blocking));
- xlseek (fd, 0, SEEK_SET, pretty_name (f));
+ if (S_ISREG (new_stats.st_mode))
+ xlseek (fd, 0, SEEK_SET, pretty_name (f));
}
}