for (i = 1; i <= nfiles; i++)
{
/* Do not treat "-" specially - as mandated by POSIX. */
- descriptors[i] = fopen (files[i], mode_string);
- if (pipe_check)
- out_pollable[i] = iopoll_output_ok (fileno (descriptors[i]));
+ descriptors[i] = fopen (files[i], mode_string);
if (descriptors[i] == NULL)
{
+ if (pipe_check)
+ out_pollable[i] = false;
error (output_error == output_error_exit
|| output_error == output_error_exit_nopipe,
errno, "%s", quotef (files[i]));
}
else
{
+ if (pipe_check)
+ out_pollable[i] = iopoll_output_ok (fileno (descriptors[i]));
setvbuf (descriptors[i], NULL, _IONBF, 0);
n_outputs++;
}
test $(wc -l < err) = 0 || { cat err; fail=1; }
test -f tee.exited || fail=1
+# Test with unwriteable files
+touch file.ro || framework_failure_
+chmod a-w file.ro || framework_failure_
+returns_ 1 tee -p </dev/null file.ro || fail=1
+
# Ensure tee honors --output-error modes
mkfifo_or_skip_ fifo
read_fifo() { timeout 10 dd count=1 if=fifo of=/dev/null status=none & }