summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--editor/editor_file_system.cpp17
1 files changed, 14 insertions, 3 deletions
diff --git a/editor/editor_file_system.cpp b/editor/editor_file_system.cpp
index 516b8f3d74..51e1c27070 100644
--- a/editor/editor_file_system.cpp
+++ b/editor/editor_file_system.cpp
@@ -1367,6 +1367,10 @@ bool EditorFileSystem::_find_file(const String &p_file, EditorFileSystemDirector
String f = ProjectSettings::get_singleton()->localize_path(p_file);
+ // Note: Only checks if base directory is case sensitive.
+ Ref<DirAccess> dir = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
+ bool fs_case_sensitive = dir->is_case_sensitive("res://");
+
if (!f.begins_with("res://")) {
return false;
}
@@ -1390,9 +1394,16 @@ bool EditorFileSystem::_find_file(const String &p_file, EditorFileSystemDirector
int idx = -1;
for (int j = 0; j < fs->get_subdir_count(); j++) {
- if (fs->get_subdir(j)->get_name() == path[i]) {
- idx = j;
- break;
+ if (fs_case_sensitive) {
+ if (fs->get_subdir(j)->get_name() == path[i]) {
+ idx = j;
+ break;
+ }
+ } else {
+ if (fs->get_subdir(j)->get_name().to_lower() == path[i].to_lower()) {
+ idx = j;
+ break;
+ }
}
}