diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2024-04-06 13:06:57 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2024-04-06 13:06:57 +0200 |
commit | 66dbe3591bbcc35b4409ecbbf6fe8925d4406303 (patch) | |
tree | 8577fc72ff27460fb07dad26a8601737a77f02b5 | |
parent | 92afd2c417a3772affeefe17d585894f2fe7827b (diff) | |
parent | 87b5a56ddfa70b094e0655f20e4226b46fcb40f1 (diff) | |
download | redot-engine-66dbe3591bbcc35b4409ecbbf6fe8925d4406303.tar.gz |
Merge pull request #90280 from TheSofox/duplicated-folder-reference-fix
Fix duplicated folder reference in Godot Editor after changing filename case
-rw-r--r-- | editor/editor_file_system.cpp | 17 |
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; + } } } |