From c356fbe05f9db95ff76c4245ab8074d35ee384cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20J=2E=20Est=C3=A9banez?= Date: Wed, 6 Dec 2017 20:19:23 +0100 Subject: [PATCH] Fix Windows-to-Linux export error Now chmod() returns ERR_UNAVAILABLE by default, to signal the caller the problem is lack of support instead of a failed operation. --- core/os/file_access.h | 2 +- editor/editor_import_export.cpp | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/core/os/file_access.h b/core/os/file_access.h index 9696eb0030b..fcb0c6cf552 100644 --- a/core/os/file_access.h +++ b/core/os/file_access.h @@ -139,7 +139,7 @@ public: virtual Error reopen(const String &p_path, int p_mode_flags); ///< does not change the AccessType - virtual Error _chmod(const String &p_path, int p_mod) { return FAILED; } + virtual Error _chmod(const String &p_path, int p_mod) { return ERR_UNAVAILABLE; } static FileAccess *create(AccessType p_access); /// Create a file access (for the current platform) this is the only portable way of accessing files. static FileAccess *create_for_path(const String &p_path); diff --git a/editor/editor_import_export.cpp b/editor/editor_import_export.cpp index ce33e7e2b48..d3184aa93e0 100644 --- a/editor/editor_import_export.cpp +++ b/editor/editor_import_export.cpp @@ -1350,6 +1350,9 @@ Error EditorExportPlatformPC::export_project(const String &p_path, bool p_debug, int flags = get_chmod_flags(); if (flags) { err = dst->_chmod(p_path, flags); + // If exporting from a platform with no chmod support (i.e., Windows), don't fail + if (err == ERR_UNAVAILABLE) + err = OK; } }