|
@@ -78,6 +78,7 @@ Error FileAccessWindows::_open(const String &p_path, int p_mode_flags) {
|
|
|
/* pretty much every implementation that uses fopen as primary
|
|
|
backend supports utf8 encoding */
|
|
|
|
|
|
+
|
|
|
struct _stat st;
|
|
|
if (_wstat(path.c_str(), &st) == 0) {
|
|
|
|
|
@@ -85,6 +86,23 @@ Error FileAccessWindows::_open(const String &p_path, int p_mode_flags) {
|
|
|
return ERR_FILE_CANT_OPEN;
|
|
|
};
|
|
|
|
|
|
+#ifdef TOOLS_ENABLED
|
|
|
+ if (p_mode_flags==READ) {
|
|
|
+ WIN32_FIND_DATAW d = {0};
|
|
|
+ HANDLE f = FindFirstFileW(filename.c_str(),&d);
|
|
|
+ if (f) {
|
|
|
+ String fname = d.cFileName;
|
|
|
+ if (fname!=String()) {
|
|
|
+
|
|
|
+ String base_file = filename.get_file();
|
|
|
+ if (base_file!=fname && base_file.findn(fname)==0) {
|
|
|
+ WARN_PRINTS("Case mismatch opening file '"+base_file+"', stored as '"+fname+"' in the filesystem. This file will not open when exported to other platforms.");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ FindClose(f);
|
|
|
+ }
|
|
|
+ }
|
|
|
+#endif
|
|
|
if (is_backup_save_enabled() && p_mode_flags & WRITE && !(p_mode_flags & READ)) {
|
|
|
save_path = path;
|
|
|
path = path + ".tmp";
|