Merge pull request #396 from SHADE-DP/SP3-6-c-scripting

Fixed issue with ImGui corrupting strings passed to managed data
This commit is contained in:
XiaoQiDigipen 2023-03-05 12:20:28 +08:00 committed by GitHub
commit 29d33d45ad
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 3 deletions

View File

@ -308,7 +308,7 @@ namespace SHADE
const bool CHANGED = ImGui::InputText("##", &buffer[0], TEXT_FIELD_MAX_LENGTH);
if (CHANGED)
{
value = std::string(buffer.data(), buffer.data() + TEXT_FIELD_MAX_LENGTH);
value = std::string(buffer.data(), buffer.data() + std::strlen(buffer.data()));
}
return CHANGED;
}

View File

@ -91,12 +91,17 @@ namespace SHADE
{
if (str == nullptr)
return "";
return msclr::interop::marshal_as<std::string>(str);
std::string s = msclr::interop::marshal_as<std::string>(str);
s.substr(0, str->Length);
return s;
}
System::String^ Convert::ToCLI(const std::string& str)
{
return msclr::interop::marshal_as<System::String^>(str);
if (str.empty())
return "";
return msclr::interop::marshal_as<System::String^>(str)->Substring(0, str.length());
}
/*---------------------------------------------------------------------------------*/