Subject: bug#35046: [PATCH] factor: check the standard output instead of the standard input

From: Paul Eggert <[email-masked]>
Date: Sat, 30 Mar 2019 22:14:36 -0700

Pádraig Brady wrote:
>> -        line_buffered = isatty (STDIN_FILENO);
>> +        line_buffered = isatty (STDOUT_FILENO);
>>         if (line_buffered)
>>           lbuf_flush ();
>>         else if (buffered >= FACTOR_PIPE_BUF)
> That would impact use cases like:
> 
>    factor | sed -u 's/.*: *//'

Sure, but the longstanding tradition for almost all GNU utilities is for stdout 
to be line-buffered if it is a tty (regardless of whether stdin is a tty), and 
that's how 'factor' behaved until we started fooling with buffering in coreutils 
8.24. Shouldn't we simply go back to the longstanding tradition for deciding 
whether to line-buffer stdout? Surely factor's current behavior is simply a bug 
introduced in 8.24 and not fixed in 8.26.