Don't put quotes around simple strings when serializing strings
parent
416994f93c
commit
f66f8a5e45
|
@ -118,6 +118,18 @@ namespace tgui
|
|||
{
|
||||
std::string result = value.getString();
|
||||
|
||||
bool encodingRequired = false;
|
||||
if (result.empty())
|
||||
encodingRequired = true;
|
||||
for (const char c : result)
|
||||
{
|
||||
if ((c != '%') && (c != '/') && (c != '_') && (c != '@') && ((c < '0') || (c > '9')) && ((c < 'A') || (c > 'Z')) && ((c < 'a') || (c > 'z')))
|
||||
encodingRequired = true;
|
||||
}
|
||||
|
||||
if (!encodingRequired)
|
||||
return result;
|
||||
|
||||
auto replace = [&](char from, char to)
|
||||
{
|
||||
std::size_t pos = 0;
|
||||
|
|
|
@ -91,7 +91,9 @@ TEST_CASE("[Serializer]")
|
|||
SECTION("serialize string")
|
||||
{
|
||||
REQUIRE(tgui::Serializer::serialize(sf::String{""}) == "\"\"");
|
||||
REQUIRE(tgui::Serializer::serialize(sf::String{"Just a string."}) == "\"Just a string.\"");
|
||||
REQUIRE(tgui::Serializer::serialize(sf::String{"word"}) == "word");
|
||||
REQUIRE(tgui::Serializer::serialize(sf::String{"No/Quotes_Required@089%"}) == "No/Quotes_Required@089%");
|
||||
REQUIRE(tgui::Serializer::serialize(sf::String{"String with spaces"}) == "\"String with spaces\"");
|
||||
REQUIRE(tgui::Serializer::serialize(sf::String{"\\"}) == "\"\\\\\"");
|
||||
REQUIRE(tgui::Serializer::serialize(sf::String{"\n"}) == "\"\\n\"");
|
||||
REQUIRE(tgui::Serializer::serialize(sf::String{"\t"}) == "\"\\t\"");
|
||||
|
|
Loading…
Reference in New Issue