From 3fd25c90fab85fc6aa9949311b13992c63ba7345 Mon Sep 17 00:00:00 2001
From: audiofanatic <audiofanatic@gmail.com>
Date: Mon, 15 Jun 2009 20:23:49 +0200
Subject: Force line buffering for stdout so it stays in sync better with
 stderr (which is unbuffered)

Task-number: 254786
Merge-request: 610
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
---
 qmake/main.cpp | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/qmake/main.cpp b/qmake/main.cpp
index fe274c4..7da66ac 100644
--- a/qmake/main.cpp
+++ b/qmake/main.cpp
@@ -84,6 +84,13 @@ bool qmake_setpwd(const QString &p)
 
 int runQMake(int argc, char **argv)
 {
+    // stderr is unbuffered by default, but stdout buffering depends on whether
+    // there is a terminal attached. Buffering can make output from stderr and stdout
+    // appear out of sync, so force stdout to be line buffered to minimize this without
+    // hurting performance too much (if at all). This is particularly important for
+    // things like QtCreator and scripted builds.
+    setvbuf(stdout, (char *)NULL, _IOLBF, 0);
+
     // parse command line
     int ret = Option::init(argc, argv);
     if(ret != Option::QMAKE_CMDLINE_SUCCESS) {
-- 
cgit v0.12