** Bug fixes
+ 'base64 a b' now correctly diagnoses 'b' as the extra operand, not 'a'.
+ [bug introduced in coreutils-5.3.0]
+
When B already exists, 'cp -il A B' no longer immediately fails
after asking the user whether to proceed.
[This bug was present in "the beginning".]
sync no longer fails for write-only file arguments.
[bug introduced with argument support to sync in coreutils-8.24]
- In 'base64 a b', and likewise for base32, the tool now correctly
- diagnoses 'b' as the extra operand, not 'a'.
- [bug introduced in coreutils-5.3.0]
+ 'tail -f file | filter' no longer exits immediately on AIX.
+ [bug introduced in coreutils-8.28]
** Changes in behavior
#include <getopt.h>
#include <sys/types.h>
#include <signal.h>
+#ifdef _AIX
+# include <poll.h>
+#endif
#include "system.h"
#include "argmatch.h"
static void
check_output_alive (void)
{
+#ifdef _AIX
+ /* select on AIX was seen to give a readable event immediately. */
+ struct pollfd pfd;
+ pfd.fd = STDOUT_FILENO;
+ pfd.events = POLLERR;
+
+ if (poll (&pfd, 1, 0) >= 0 && (pfd.revents & POLLERR))
+ raise (SIGPIPE);
+#endif
+
if (! monitor_output)
return;
# This would wait indefinitely before v8.28 due to no EPIPE being
# generated due to no data written after the first small amount
-timeout 10 tail -f $mode $fastpoll out | sleep .1 || fail=1
+(returns_ 124 timeout 10 tail -n2 -f $mode $fastpoll out && touch timed_out) |
+ sed 2q > out2
+test -e timed_out && fail=1
+compare exp out2 || fail=1
# This would wait indefinitely before v8.28 (until first write)
(returns_ 1 timeout 10 tail -f $mode $fastpoll /dev/null >&-) || fail=1