Merge pull request #430 from aws-lumberyard-dev/carlitosan-beta-fixes

Carlitosan beta fixes - use long brackets for Lua implementation of ScriptCanvas strings
This commit is contained in:
carlitosan
2021-04-29 13:56:13 -07:00
committed by GitHub
3 changed files with 1504 additions and 1 deletions
@@ -26,6 +26,39 @@
#include "GraphToLua.h"
namespace GraphToLuaUtilityCpp
{
AZStd::string EqualSigns(size_t numEqualSignsRequired)
{
AZStd::string equalSigns = "";
while (numEqualSignsRequired--)
{
equalSigns += "=";
}
return equalSigns;
}
AZStd::string MakeLongBracketString(const AZStd::string& formattedString)
{
size_t numEqualSignsRequired = 0;
for (;;)
{
auto candidate = AZStd::string::format("]%s]", EqualSigns(numEqualSignsRequired).c_str());
if (formattedString.find(candidate) == AZStd::string::npos)
{
break;
}
++numEqualSignsRequired;
}
return EqualSigns(numEqualSignsRequired);
}
}
namespace ScriptCanvas
{
namespace Translation
@@ -352,7 +385,11 @@ namespace ScriptCanvas
}
case Data::eType::String:
return AZStd::string::format("\"%s\"", datum.GetAs<Data::StringType>()->data());
{
const AZStd::string& formattedString = *datum.GetAs<Data::StringType>();
const AZStd::string bracketString = GraphToLuaUtilityCpp::MakeLongBracketString(formattedString);
return AZStd::string::format("[%s[%s]%s]", bracketString.c_str(), formattedString.c_str(), bracketString.c_str());
}
case Data::eType::EntityID:
return EntityIdValueToString(*datum.GetAs<Data::EntityIDType>(), config);
@@ -90,6 +90,11 @@ public:
}
};
TEST_F(ScriptCanvasTestFixture, StringSanitization)
{
RunUnitTestGraph("LY_SC_UnitTest_StringSanitization");
}
TEST_F(ScriptCanvasTestFixture, InterpretedHelloWorld)
{
RunUnitTestGraph("LY_SC_UnitTest_HelloWorld");