summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/sdk/console.h3
-rw-r--r--src/sdk/console_win.cpp13
2 files changed, 10 insertions, 6 deletions
diff --git a/src/sdk/console.h b/src/sdk/console.h
index 0ab6e4743..378a37e60 100644
--- a/src/sdk/console.h
+++ b/src/sdk/console.h
@@ -1,6 +1,6 @@
/**************************************************************************
**
-** Copyright (C) 2017 The Qt Company Ltd.
+** Copyright (C) 2019 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Installer Framework.
@@ -44,6 +44,7 @@ public:
private:
bool parentConsole;
+ bool newConsoleCreated;
std::ofstream m_newCout;
std::ofstream m_newCerr;
diff --git a/src/sdk/console_win.cpp b/src/sdk/console_win.cpp
index f3226bc60..978159612 100644
--- a/src/sdk/console_win.cpp
+++ b/src/sdk/console_win.cpp
@@ -1,6 +1,6 @@
/**************************************************************************
**
-** Copyright (C) 2017 The Qt Company Ltd.
+** Copyright (C) 2019 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Installer Framework.
@@ -74,7 +74,9 @@ static bool isRedirected(HANDLE stdHandle)
*/
Console::Console() :
m_oldCout(nullptr),
- m_oldCerr(nullptr)
+ m_oldCerr(nullptr),
+ parentConsole(false),
+ newConsoleCreated(false)
{
bool isCoutRedirected = isRedirected(GetStdHandle(STD_OUTPUT_HANDLE));
bool isCerrRedirected = isRedirected(GetStdHandle(STD_ERROR_HANDLE));
@@ -83,6 +85,7 @@ Console::Console() :
// try to use parent console. else launch & set up new console
parentConsole = AttachConsole(ATTACH_PARENT_PROCESS);
if (!parentConsole) {
+ newConsoleCreated = true;
AllocConsole();
HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
if (handle != INVALID_HANDLE_VALUE) {
@@ -119,11 +122,11 @@ Console::Console() :
Console::~Console()
{
- if (!parentConsole) {
- system("PAUSE");
- } else {
+ if (parentConsole) {
// simulate enter key to switch to boot prompt
PostMessage(GetConsoleWindow(), WM_KEYDOWN, 0x0D, 0);
+ } else if (newConsoleCreated) {
+ system("PAUSE");
}
if (m_oldCerr)