Fix duplicated folder reference in Godot Editor after changing filename case

(cherry picked from commit 87b5a56ddf)
This commit is contained in:
Sofox 2024-04-05 21:38:48 +01:00 committed by Rémi Verschelde
parent bfc72801fd
commit 946cb13d9b
No known key found for this signature in database
GPG Key ID: C3336907360768E1
1 changed files with 14 additions and 3 deletions

View File

@ -1350,6 +1350,10 @@ bool EditorFileSystem::_find_file(const String &p_file, EditorFileSystemDirector
String f = ProjectSettings::get_singleton()->localize_path(p_file); 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://")) { if (!f.begins_with("res://")) {
return false; return false;
} }
@ -1373,9 +1377,16 @@ bool EditorFileSystem::_find_file(const String &p_file, EditorFileSystemDirector
int idx = -1; int idx = -1;
for (int j = 0; j < fs->get_subdir_count(); j++) { for (int j = 0; j < fs->get_subdir_count(); j++) {
if (fs->get_subdir(j)->get_name() == path[i]) { if (fs_case_sensitive) {
idx = j; if (fs->get_subdir(j)->get_name() == path[i]) {
break; idx = j;
break;
}
} else {
if (fs->get_subdir(j)->get_name().to_lower() == path[i].to_lower()) {
idx = j;
break;
}
} }
} }