diff options
author | Hein-Pieter van Braam <hp@tmm.cx> | 2017-09-05 01:14:14 +0200 |
---|---|---|
committer | Hein-Pieter van Braam <hp@tmm.cx> | 2017-09-05 01:14:14 +0200 |
commit | 5fed954a1b16c616f650f0b58c8647bcda5606e7 (patch) | |
tree | 1b5091261dadfb98c96982a5f012a56ca5d3f9fa | |
parent | a7c2ff5c94c6e52906b1cc77cd133106b990f107 (diff) |
Fix UNIX file open
In #10973 I refactored FileAccessUnix::_open() but I accidentally made
it impossible to create new files.
This fixes that and fixes #10984
-rw-r--r-- | drivers/unix/file_access_unix.cpp | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/drivers/unix/file_access_unix.cpp b/drivers/unix/file_access_unix.cpp index ec97826a12..db06cce644 100644 --- a/drivers/unix/file_access_unix.cpp +++ b/drivers/unix/file_access_unix.cpp @@ -91,15 +91,14 @@ Error FileAccessUnix::_open(const String &p_path, int p_mode_flags) { //printf("opening %s as %s\n", p_path.utf8().get_data(), path.utf8().get_data()); struct stat st; int err = stat(path.utf8().get_data(), &st); - if (err) - return ERR_FILE_CANT_OPEN; - - switch (st.st_mode & S_IFMT) { - case S_IFLNK: - case S_IFREG: - break; - default: - return ERR_FILE_CANT_OPEN; + if (!err) { + switch (st.st_mode & S_IFMT) { + case S_IFLNK: + case S_IFREG: + break; + default: + return ERR_FILE_CANT_OPEN; + } } if (is_backup_save_enabled() && (p_mode_flags & WRITE) && !(p_mode_flags & READ)) { |