From 11349a786be1fd02647493cfeff9883898ffd73e Mon Sep 17 00:00:00 2001 From: Fabio Alessandrelli Date: Thu, 13 Oct 2016 11:28:38 +0200 Subject: [PATCH 1/2] Revert "Add warning when (pre)loading paths with leading / (#4280 - #3106)" Also closes: #6801 This reverts commit e59820ac94b7c9706298d5559608937dfca332e5. --- modules/gdscript/gd_functions.cpp | 4 ---- modules/gdscript/gd_parser.cpp | 8 -------- 2 files changed, 12 deletions(-) diff --git a/modules/gdscript/gd_functions.cpp b/modules/gdscript/gd_functions.cpp index e82eb837734..e224ce47183 100644 --- a/modules/gdscript/gd_functions.cpp +++ b/modules/gdscript/gd_functions.cpp @@ -840,10 +840,6 @@ void GDFunctions::call(Function p_func,const Variant **p_args,int p_arg_count,Va r_error.error=Variant::CallError::CALL_ERROR_INVALID_ARGUMENT; r_error.argument=0; r_ret=Variant(); - } else if(((String)(*p_args[0])).begins_with("/")) { - r_error.error=Variant::CallError::CALL_ERROR_INVALID_ARGUMENT; - r_error.argument=0; - r_ret=RTR("Paths cannot start with '/', absolute paths must start with 'res://', 'user://', or 'local://'"); } else { r_ret=ResourceLoader::load(*p_args[0]); } diff --git a/modules/gdscript/gd_parser.cpp b/modules/gdscript/gd_parser.cpp index e2d284ae022..434f9183557 100644 --- a/modules/gdscript/gd_parser.cpp +++ b/modules/gdscript/gd_parser.cpp @@ -309,10 +309,6 @@ GDParser::Node* GDParser::_parse_expression(Node *p_parent,bool p_static,bool p_ _set_error("expected string constant as 'preload' argument."); return NULL; } - if (path.begins_with("/")) { - _set_error("Paths cannot start with '/', absolute paths must start with \'res://\', \'user://\', or \'local://\'"); - return NULL; - } if (!path.is_abs_path() && base_path!="") path=base_path+"/"+path; path = path.replace("///","//").simplify_path(); @@ -2122,10 +2118,6 @@ void GDParser::_parse_extends(ClassNode *p_class) { _set_error("'extends' constant must be a string."); return; } - if (((String)(constant)).begins_with("/")) { - _set_error("Paths cannot start with '/', absolute paths must start with \'res://\', \'user://\', or \'local://\'"); - return; - } p_class->extends_file=constant; tokenizer->advance(); From 2f2cea070e062415f290103f1823ab17ea4e5874 Mon Sep 17 00:00:00 2001 From: Fabio Alessandrelli Date: Thu, 13 Oct 2016 11:30:04 +0200 Subject: [PATCH 2/2] Properly handle absolute paths in Globals::localize_path This give a proper fix for #4280 - #3106 , allowing absolute paths that starts from the file system, not the resource folder --- core/globals.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/globals.cpp b/core/globals.cpp index b822f52f157..bef40ff330a 100644 --- a/core/globals.cpp +++ b/core/globals.cpp @@ -54,7 +54,7 @@ String Globals::localize_path(const String& p_path) const { if (resource_path=="") return p_path; //not initialied yet - if (p_path.begins_with("res://") || p_path.begins_with("user://")) + if (p_path.begins_with("res://") || p_path.begins_with("user://") || p_path.is_abs_path()) return p_path.simplify_path();