summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPádraig Brady <P@draigBrady.com>2016-09-06 15:13:32 +0100
committerPádraig Brady <P@draigBrady.com>2016-09-07 10:20:39 +0100
commit6643842bad2e0ed9f9249f2039d2a30c3b7fb38d (patch)
tree08c22290c3c04e978e53eb9c012cc7a0f933bbbd
parent5445f7811ff945ea13aa2a0fd797eb4c0a0e4db0 (diff)
downloadcoreutils-6643842bad2e0ed9f9249f2039d2a30c3b7fb38d.tar.xz
factor: reinstate immediate output with interactive use
* src/factor.c (lbuf_putc): Only buffer more than a line when not using the tool interactively. * NEWS: Mention the bug fix. Fixes http://pad.lv/1620139
-rw-r--r--NEWS3
-rw-r--r--src/factor.c8
2 files changed, 10 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index f4cdf9ecb..e99c88b96 100644
--- a/NEWS
+++ b/NEWS
@@ -22,6 +22,9 @@ GNU coreutils NEWS -*- outline -*-
System V style platforms where this information is available only
in the global variable 'tzname'. [bug introduced in coreutils-8.24]
+ factor again outputs immediately when numbers are input interactively.
+ [bug introduced in coreutils-8.24]
+
nl now resets numbering for each page section rather than just for each page.
[This bug was present in "the beginning".]
diff --git a/src/factor.c b/src/factor.c
index 8fee75912..ff454b485 100644
--- a/src/factor.c
+++ b/src/factor.c
@@ -2379,7 +2379,13 @@ lbuf_putc (char c)
{
size_t buffered = lbuf.end - lbuf.buf;
- if (buffered >= FACTOR_PIPE_BUF)
+ /* Provide immediate output for interactive input. */
+ static int line_buffered = -1;
+ if (line_buffered == -1)
+ line_buffered = isatty (STDIN_FILENO);
+ if (line_buffered)
+ lbuf_flush ();
+ else if (buffered >= FACTOR_PIPE_BUF)
{
/* Write output in <= PIPE_BUF chunks
so consumers can read atomically. */