From 403d147e7eaf7fc7de133da7716d5a50927f9ce8 Mon Sep 17 00:00:00 2001
From: Axel Naumann <Axel.Naumann@cern.ch>
Date: Thu, 15 Dec 2016 14:32:41 +0100
Subject: [PATCH] From Roman Zulak: Flush stdout less (textinput part).

---
 core/textinput/src/textinput/TerminalDisplayUnix.cpp | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/core/textinput/src/textinput/TerminalDisplayUnix.cpp b/core/textinput/src/textinput/TerminalDisplayUnix.cpp
index 144b27f24ac..d3d17ff4a3e 100644
--- a/core/textinput/src/textinput/TerminalDisplayUnix.cpp
+++ b/core/textinput/src/textinput/TerminalDisplayUnix.cpp
@@ -124,14 +124,13 @@ namespace textinput {
     }
   }
 
-  static void syncOut(int /*fd*/) {
-    ::fflush(stdout);
-  }
+// Don't rely on flushing here.
+#define SYNC_OUT(fd) /*if (fd==STDOUT_FILENO) { ::fflush(stdout); } }*/
 
   TerminalDisplayUnix::~TerminalDisplayUnix() {
     Detach();
     if (fOutputID != STDOUT_FILENO) {
-      syncOut(fOutputID);
+      SYNC_OUT(fOutputID);
       ::close(fOutputID);
     }
   }
@@ -280,7 +279,7 @@ namespace textinput {
   TerminalDisplayUnix::Attach() {
     // set to noecho
     if (fIsAttached) return;
-    syncOut(fOutputID);
+    SYNC_OUT(fOutputID);
     TerminalConfigUnix::Get().Attach();
     fWritePos = Pos();
     fWriteLen = 0;
@@ -290,7 +289,7 @@ namespace textinput {
   void
   TerminalDisplayUnix::Detach() {
     if (!fIsAttached) return;
-    syncOut(fOutputID);
+    SYNC_OUT(fOutputID);
     TerminalConfigUnix::Get().Detach();
     TerminalDisplay::Detach();
     fIsAttached = false;
-- 
GitLab