diff options
| author | Rémi Verschelde <rverschelde@gmail.com> | 2024-03-06 18:50:35 +0100 |
|---|---|---|
| committer | Rémi Verschelde <rverschelde@gmail.com> | 2024-03-08 23:31:24 +0100 |
| commit | 023dcd44c1e628bb654b5472418d6a346b510a71 (patch) | |
| tree | 61ae1291ab2b93c2a0de25c4edcc11ee20c3be75 /platform/linuxbsd | |
| parent | ffc41fb76df5922321cdd98cce12715a039629b0 (diff) | |
| download | redot-engine-023dcd44c1e628bb654b5472418d6a346b510a71.tar.gz | |
Refactor OS exit code to be `EXIT_SUCCESS` by default
- `Main::setup` early exits (failure or `--help`/`--version`) now
consistently return `EXIT_FAILURE` or `EXIT_SUCCESS` on all platforms,
instead of 255 on some and a Godot Error code on others.
- `Main::start` now returns the exit code, simplifying the handling of early
failures.
- `Main::iteration` needs to explicit set the exit code in OS if it errors
out.
- Web and iOS now properly return `OS::get_exit_code()` instead of 0.
Diffstat (limited to 'platform/linuxbsd')
| -rw-r--r-- | platform/linuxbsd/godot_linuxbsd.cpp | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/platform/linuxbsd/godot_linuxbsd.cpp b/platform/linuxbsd/godot_linuxbsd.cpp index a2b6fbeb25..b0880c86b8 100644 --- a/platform/linuxbsd/godot_linuxbsd.cpp +++ b/platform/linuxbsd/godot_linuxbsd.cpp @@ -72,18 +72,19 @@ int main(int argc, char *argv[]) { char *ret = getcwd(cwd, PATH_MAX); Error err = Main::setup(argv[0], argc - 1, &argv[1]); + if (err != OK) { free(cwd); - if (err == ERR_HELP) { // Returned by --help and --version, so success. - return 0; + return EXIT_SUCCESS; } - return 255; + return EXIT_FAILURE; } - if (Main::start()) { - os.set_exit_code(EXIT_SUCCESS); - os.run(); // it is actually the OS that decides how to run + if (Main::start() == EXIT_SUCCESS) { + os.run(); + } else { + os.set_exit_code(EXIT_FAILURE); } Main::cleanup(); |
