summaryrefslogtreecommitdiffstats
path: root/main.cpp
diff options
context:
space:
mode:
authorGravatar Lubomir I. Ivanov <neolit123@gmail.com>2014-03-25 16:55:56 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2014-03-25 07:57:27 -0700
commit74ed786d7546b22ec31fbd441a7a03b7b06836a4 (patch)
treefa7f4e8c73ffd46d2b3f4b3c5c741903031caef7 /main.cpp
parentb3f78185a5e9cfbbb5f7d8cb1e7b389c7a1c6b5c (diff)
downloadsubsurface-74ed786d7546b22ec31fbd441a7a03b7b06836a4.tar.gz
Add optional Win32 console allocation
This patch adds the optional --win32console command line option. It does nothing on OSx and Linux, while is only useable on Win32. On Win32 if the application was built as GUI (not console), there is no way to view stdout and stderr. With windows.c's subsurface_console_init() we are able to either redirect stdout and stderr to the terminal from which subsurface.exe was started (always happens; --win32console does nothing in this case) or if --win32console is explicitly added to a shortcut, create a dedicated console window and monitor the output there. if set, WIN32_CONSOLE_APP is a condition that will make the subsurface_console_init() and subsurface_console_exit() functions NOP on Windows. The definition will be created if the user passes 'CONFIG += console' to qmake. Fixes #436 Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'main.cpp')
-rw-r--r--main.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/main.cpp b/main.cpp
index c93121400..a011b4caf 100644
--- a/main.cpp
+++ b/main.cpp
@@ -23,6 +23,11 @@ int main(int argc, char **argv)
QStringList files;
QStringList importedFiles;
QStringList arguments = QCoreApplication::arguments();
+
+ bool dedicated_console = arguments.length() > 1 &&
+ (arguments.at(1) == QString("--win32console"));
+ subsurface_console_init(dedicated_console);
+
for (i = 1; i < arguments.length(); i++) {
QString a = arguments.at(i);
if (a.at(0) == '-') {
@@ -56,5 +61,6 @@ int main(int argc, char **argv)
run_ui();
exit_ui();
parse_xml_exit();
+ subsurface_console_exit();
return 0;
}