Merge pull request #29315 from akien-mga/fix-paths-localization

Don't localize paths that contain but are not in the resource path
This commit is contained in:
Rémi Verschelde 2019-05-30 16:43:43 +02:00 committed by GitHub
commit fcb60fa2cd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -75,11 +75,19 @@ String ProjectSettings::localize_path(const String &p_path) const {
memdelete(dir);
if (!cwd.begins_with(resource_path)) {
// Ensure that we end with a '/'.
// This is important to ensure that we do not wrongly localize the resource path
// in an absolute path that just happens to contain this string but points to a
// different folder (e.g. "/my/project" as resource_path would be contained in
// "/my/project_data", even though the latter is not part of res://.
// `plus_file("")` is an easy way to ensure we have a trailing '/'.
const String res_path = resource_path.plus_file("");
if (!cwd.begins_with(res_path)) {
return p_path;
};
return cwd.replace_first(resource_path, "res:/");
return cwd.replace_first(res_path, "res://");
} else {
memdelete(dir);