summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2018-02-03 14:46:45 +0100
committerBram Moolenaar <Bram@vim.org>2018-02-03 14:46:45 +0100
commit42b23fad1d9cdd6266f52d1ed7e0f3f17ce2d04b (patch)
treeecc2cccbd7dd7e0aa3303c648486e5099e294e98
parent218101442e8775bd1f05d1dda18d3946ee032dd1 (diff)
patch 8.0.1454: when in silent mode too much output is bufferedv8.0.1454
Problem: When in silent mode too much output is buffered. Solution: Use line buffering instead of fully buffered. (Brian M. Carlson, closes #2537)
-rw-r--r--src/main.c9
-rw-r--r--src/version.c2
2 files changed, 10 insertions, 1 deletions
diff --git a/src/main.c b/src/main.c
index 9cf10bd781..aea652b5d3 100644
--- a/src/main.c
+++ b/src/main.c
@@ -359,6 +359,13 @@ main
*/
check_tty(&params);
+#ifdef _IOLBF
+ /* Ensure output works usefully without a tty: buffer lines instead of
+ * fully buffered. */
+ if (silent_mode)
+ setvbuf(stdout, NULL, _IOLBF, 0);
+#endif
+
/* This message comes before term inits, but after setting "silent_mode"
* when the input is not a tty. */
if (GARGCOUNT > 1 && !silent_mode)
@@ -2532,7 +2539,7 @@ scripterror:
/*
* Print a warning if stdout is not a terminal.
- * When starting in Ex mode and commands come from a file, set Silent mode.
+ * When starting in Ex mode and commands come from a file, set silent_mode.
*/
static void
check_tty(mparm_T *parmp)
diff --git a/src/version.c b/src/version.c
index cd994600b6..57040747f7 100644
--- a/src/version.c
+++ b/src/version.c
@@ -772,6 +772,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1454,
+/**/
1453,
/**/
1452,