* src/tail.c (check_output_alive): Use poll() on Solaris.
Also handle POLLHUP, which Solaris returns in this case.
* tests/tail-2/pipe-f.sh: Use `head -n2` rather than `sed 2q`
as Solaris sed does not exit in this case.
* NEWS: Mention the improvement.
Reported by Bruno Haible.
sort --debug now diagnoses issues with --field-separator characters
that conflict with characters possibly used in numbers.
+ 'tail -f file | filter' now exits on Solaris when filter exits.
+
root invoked coreutils, that are built and run in single binary mode,
now adjust /proc/$pid/cmdline to be more specific to the utility
being run, rather than using the general "coreutils" binary name.
# include <sys/inotify.h>
#endif
-#if defined _AIX || HAVE_INOTIFY
+#if defined _AIX || defined __sun || HAVE_INOTIFY
# include <poll.h>
#endif
event immediately) or if using inotify (which relies on 'poll'
anyway). Otherwise, use 'select' as it's more portable;
'poll' doesn't work for this application on macOS. */
-#if defined _AIX || HAVE_INOTIFY
+#if defined _AIX || defined __sun || HAVE_INOTIFY
struct pollfd pfd;
pfd.fd = STDOUT_FILENO;
- pfd.events = POLLERR;
+ pfd.events = pfd.revents = 0;
- if (poll (&pfd, 1, 0) >= 0 && (pfd.revents & POLLERR))
+ if (poll (&pfd, 1, 0) >= 0 && (pfd.revents & (POLLERR | POLLHUP)))
die_pipe ();
#else
struct timeval delay;
# along with this program. If not, see <https://www.gnu.org/licenses/>.
. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src
-print_ver_ tail test
+print_ver_ tail test head
trap_sigpipe_or_skip_
# Speedup the non inotify case
(trap "$disposition" PIPE;
returns_ 124 timeout 10 \
tail -n2 -f $mode $fastpoll out && touch timed_out) |
- sed 2q > out2
+ head -n2 > out2
test -e timed_out && fail=1
compare exp out2 || fail=1
rm -f timed_out