diff options
| -rw-r--r-- | core/variant_parser.cpp | 15 | ||||
| -rw-r--r-- | scene/resources/scene_format_text.cpp | 9 | 
2 files changed, 21 insertions, 3 deletions
diff --git a/core/variant_parser.cpp b/core/variant_parser.cpp index 886bea2910..dce873a306 100644 --- a/core/variant_parser.cpp +++ b/core/variant_parser.cpp @@ -1775,7 +1775,20 @@ Error VariantParser::parse_tag_assign_eof(Stream *p_stream, int &line, String &r  		}  		if (c>32) { -			if (c!='=') { +			if (c=='"') { //quoted +				p_stream->saved='"'; +				Token tk; +				Error err = get_token(p_stream,tk,line,r_err_str); +				if (err) +					return err; +				if (tk.type!=TK_STRING) { +					r_err_str="Error reading quoted string"; +					return err; +				} + +				what=tk.value; + +			} else if (c!='=') {  				what+=String::chr(c);  			} else {  				r_assign=what; diff --git a/scene/resources/scene_format_text.cpp b/scene/resources/scene_format_text.cpp index fedbfda029..c7e2fc4e73 100644 --- a/scene/resources/scene_format_text.cpp +++ b/scene/resources/scene_format_text.cpp @@ -1140,7 +1140,12 @@ void ResourceFormatSaverTextInstance::_find_resources(const Variant& p_variant,b  } +static String _valprop(const String& p_name) { +	if (p_name.find("\"")!=-1 || p_name.find("=")!=-1 || p_name.find(" ")!=-1) +		return "\""+p_name.c_escape()+"\""; +	return p_name; +}  Error ResourceFormatSaverTextInstance::save(const String &p_path,const RES& p_resource,uint32_t p_flags) { @@ -1296,7 +1301,7 @@ Error ResourceFormatSaverTextInstance::save(const String &p_path,const RES& p_re  				String vars;  				VariantWriter::write_to_string(value,vars,_write_resources,this); -				f->store_string(name+" = "+vars+"\n"); +				f->store_string(_valprop(name)+" = "+vars+"\n");  			} @@ -1370,7 +1375,7 @@ Error ResourceFormatSaverTextInstance::save(const String &p_path,const RES& p_re  				String vars;  				VariantWriter::write_to_string(state->get_node_property_value(i,j),vars,_write_resources,this); -				f->store_string(String(state->get_node_property_name(i,j))+" = "+vars+"\n"); +				f->store_string(_valprop(String(state->get_node_property_name(i,j)))+" = "+vars+"\n");  			}  			if (state->get_node_property_count(i)) {  |