1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-15 13:51:40 +00:00

Allow to escape closing brackets in CFG tags

This commit is contained in:
kobewi
2022-11-09 14:00:51 +01:00
parent 29de658c29
commit 0d122ce459
3 changed files with 22 additions and 5 deletions

View File

@@ -1304,6 +1304,7 @@ Error VariantParser::_parse_tag(Token &token, Stream *p_stream, int &line, Strin
if (p_simple_tag) {
r_tag.name = "";
r_tag.fields.clear();
bool escaping = false;
if (p_stream->is_utf8()) {
CharString cs;
@@ -1314,7 +1315,15 @@ Error VariantParser::_parse_tag(Token &token, Stream *p_stream, int &line, Strin
return ERR_PARSE_ERROR;
}
if (c == ']') {
break;
if (escaping) {
escaping = false;
} else {
break;
}
} else if (c == '\\') {
escaping = true;
} else {
escaping = false;
}
cs += c;
}
@@ -1327,7 +1336,15 @@ Error VariantParser::_parse_tag(Token &token, Stream *p_stream, int &line, Strin
return ERR_PARSE_ERROR;
}
if (c == ']') {
break;
if (escaping) {
escaping = false;
} else {
break;
}
} else if (c == '\\') {
escaping = true;
} else {
escaping = false;
}
r_tag.name += String::chr(c);
}