summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/factor.c8
1 files changed, 7 insertions, 1 deletions
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. */