diff options
| author | Jeroen van Rijn <Kelimion@users.noreply.github.com> | 2024-07-31 15:16:09 +0200 |
|---|---|---|
| committer | Jeroen van Rijn <Kelimion@users.noreply.github.com> | 2024-07-31 15:16:09 +0200 |
| commit | fdfe6b00e0e8558050ebd6e6c7cb33b3d789be4f (patch) | |
| tree | 36ccea727fa76951a6992eaa70e25da1191b16f3 /src/build_settings.cpp | |
| parent | 8a9901aeabaec5b9c7acf6501688c7962262801d (diff) | |
Improve output path checking
Fixes #4001
Diffstat (limited to 'src/build_settings.cpp')
| -rw-r--r-- | src/build_settings.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/build_settings.cpp b/src/build_settings.cpp index faa8ad2b6..3e2d11101 100644 --- a/src/build_settings.cpp +++ b/src/build_settings.cpp @@ -2011,15 +2011,20 @@ gb_internal bool init_build_paths(String init_filename) { } } + String output_file = path_to_string(ha, bc->build_paths[BuildPath_Output]); + defer (gb_free(ha, output_file.text)); + // Check if output path is a directory. if (path_is_directory(bc->build_paths[BuildPath_Output])) { - String output_file = path_to_string(ha, bc->build_paths[BuildPath_Output]); - defer (gb_free(ha, output_file.text)); gb_printf_err("Output path %.*s is a directory.\n", LIT(output_file)); return false; } - if (!write_directory(bc->build_paths[BuildPath_Output].basename)) { + gbFile output_file_test; + gbFileError output_test_err = gb_file_open_mode(&output_file_test, gbFileMode_Append | gbFileMode_Rw, (const char*)output_file.text); + defer (gb_file_close(&output_file_test)); + + if (output_test_err != 0) { String output_file = path_to_string(ha, bc->build_paths[BuildPath_Output]); defer (gb_free(ha, output_file.text)); gb_printf_err("No write permissions for output path: %.*s\n", LIT(output_file)); |