diff options
author | sfan5 <sfan5@live.de> | 2023-01-23 00:19:30 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-23 00:19:30 +0100 |
commit | 87d509e4625df2d76a80f14cab3d420bd58ba20a (patch) | |
tree | 8a17b87abf96312a79f49c05c7c4824766bcb39f /src/gettext.cpp | |
parent | 6f5703baf1737ca1d7dd70982e878fd83d288cdd (diff) | |
download | minetest-87d509e4625df2d76a80f14cab3d420bd58ba20a.tar.xz |
Implement --debugger option to improve UX when debugging crashes (#13157)
Diffstat (limited to 'src/gettext.cpp')
-rw-r--r-- | src/gettext.cpp | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/src/gettext.cpp b/src/gettext.cpp index de042cf35..f56738d98 100644 --- a/src/gettext.cpp +++ b/src/gettext.cpp @@ -149,28 +149,25 @@ void init_gettext(const char *path, const std::string &configured_language, "Restarting " PROJECT_NAME_C " in a new environment!" << std::endl; std::string parameters; - - for (unsigned int i = 1; i < argc; i++) { - if (!parameters.empty()) + for (int i = 1; i < argc; i++) { + if (i > 1) parameters += ' '; - - parameters += argv[i]; + parameters += porting::QuoteArgv(argv[i]); } - const char *ptr_parameters = NULL; - + char *ptr_parameters = nullptr; if (!parameters.empty()) - ptr_parameters = parameters.c_str(); + ptr_parameters = ¶meters[0]; // Allow calling without an extension std::string app_name = argv[0]; if (app_name.compare(app_name.size() - 4, 4, ".exe") != 0) app_name += ".exe"; - STARTUPINFO startup_info = {0}; - PROCESS_INFORMATION process_info = {0}; + STARTUPINFO startup_info = {}; + PROCESS_INFORMATION process_info = {}; - bool success = CreateProcess(app_name.c_str(), (char *)ptr_parameters, + bool success = CreateProcess(app_name.c_str(), ptr_parameters, NULL, NULL, false, DETACHED_PROCESS | CREATE_UNICODE_ENVIRONMENT, NULL, NULL, &startup_info, &process_info); |