summaryrefslogtreecommitdiff
path: root/src/main.cpp
diff options
context:
space:
mode:
authoradrido <robots_only_adrido@gmx.com>2017-04-07 07:14:39 +0200
committerLoïc Blot <nerzhul@users.noreply.github.com>2017-04-07 07:14:39 +0200
commit676951d90dc7807733288c3c66952bb0394e2e7c (patch)
tree7428c7503bed28f1afcb391afb2348b6c908acbe /src/main.cpp
parent94358a709bdb1fe8101b2b228dec78b67fb377a6 (diff)
downloadminetest-676951d90dc7807733288c3c66952bb0394e2e7c.tar.gz
minetest-676951d90dc7807733288c3c66952bb0394e2e7c.tar.bz2
minetest-676951d90dc7807733288c3c66952bb0394e2e7c.zip
Windows: Skip cmd for release builds (#5416)
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/main.cpp b/src/main.cpp
index 3599a36ce..1ec278981 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -17,9 +17,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-// This would get rid of the console window
-//#pragma comment(linker, "/subsystem:windows /ENTRY:mainCRTStartup")
-
#include "irrlicht.h" // createDevice
#include "mainmenumanager.h"
@@ -44,6 +41,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "gameparams.h"
#include "database.h"
#include "config.h"
+#include "porting.h"
#if USE_CURSES
#include "terminal_chat_console.h"
#endif
@@ -134,7 +132,6 @@ static OptionList allowed_options;
int main(int argc, char *argv[])
{
int retval;
-
debug_set_exception_handler();
g_logger.registerThread("Main");
@@ -145,11 +142,15 @@ int main(int argc, char *argv[])
if (!cmd_args_ok
|| cmd_args.getFlag("help")
|| cmd_args.exists("nonopt1")) {
+ porting::attachOrCreateConsole();
print_help(allowed_options);
return cmd_args_ok ? 0 : 1;
}
+ if (cmd_args.getFlag("console"))
+ porting::attachOrCreateConsole();
if (cmd_args.getFlag("version")) {
+ porting::attachOrCreateConsole();
print_version();
return 0;
}
@@ -191,6 +192,9 @@ int main(int argc, char *argv[])
if (!init_common(cmd_args, argc, argv))
return 1;
+ if (g_settings->getBool("enable_console"))
+ porting::attachOrCreateConsole();
+
#ifndef __ANDROID__
// Run unit tests
if (cmd_args.getFlag("run-unittests")) {
@@ -200,9 +204,13 @@ int main(int argc, char *argv[])
GameParams game_params;
#ifdef SERVER
+ porting::attachOrCreateConsole();
game_params.is_dedicated_server = true;
#else
- game_params.is_dedicated_server = cmd_args.getFlag("server");
+ const bool isServer = cmd_args.getFlag("server");
+ if (isServer)
+ porting::attachOrCreateConsole();
+ game_params.is_dedicated_server = isServer;
#endif
if (!game_configure(&game_params, cmd_args))
@@ -303,6 +311,8 @@ static void set_allowed_options(OptionList *allowed_options)
_("Set password"))));
allowed_options->insert(std::make_pair("go", ValueSpec(VALUETYPE_FLAG,
_("Disable main menu"))));
+ allowed_options->insert(std::make_pair("console", ValueSpec(VALUETYPE_FLAG,
+ _("Starts with the console (Windows only)"))));
#endif
}