aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/app/qbs/session.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/app/qbs/session.cpp b/src/app/qbs/session.cpp
index 0b93aff49..30e71dfd5 100644
--- a/src/app/qbs/session.cpp
+++ b/src/app/qbs/session.cpp
@@ -71,6 +71,14 @@
#include <iostream>
#include <memory>
+#ifdef Q_OS_WIN32
+#include <cerrno>
+#include <cstdio>
+#include <cstring>
+#include <fcntl.h>
+#include <io.h>
+#endif
+
namespace qbs {
namespace Internal {
@@ -175,6 +183,13 @@ void startSession()
Session::Session()
{
+#ifdef Q_OS_WIN32
+ // Make sure the line feed character appears as itself.
+ if (_setmode(_fileno(stdout), _O_BINARY) == -1) {
+ std::cerr << "Failed to set stdout to binary mode: " << std::strerror(errno) << std::endl;
+ qApp->exit(EXIT_FAILURE);
+ }
+#endif
sendPacket(SessionPacket::helloMessage());
connect(&m_logSink, &SessionLogSink::newMessage, this, &Session::sendPacket);
connect(&m_packetReader, &SessionPacketReader::errorOccurred,