Core/Commands: Fixed logging gm commands that accept hyperlink arguments and use legacy handlers

Closes #26462
This commit is contained in:
Shauren
2021-04-25 14:22:30 +02:00
parent 3e407c7d1c
commit ab1a5b7fc8

View File

@@ -147,7 +147,10 @@ namespace Trinity::Impl::ChatCommands
{
_wrapper = [](void* handler, ChatHandler* chatHandler, std::string_view argsStr)
{
return reinterpret_cast<bool(*)(ChatHandler*, char const*)>(handler)(chatHandler, argsStr.empty() ? "" : argsStr.data());
// make a copy of the argument string
// legacy handlers can destroy input strings with strtok
std::string argsStrCopy(argsStr);
return reinterpret_cast<bool(*)(ChatHandler*, char const*)>(handler)(chatHandler, argsStrCopy.c_str());
};
_handler = reinterpret_cast<void*>(handler);
}