Don't assume command line values are always ascii

In case someone put unicode folder inside addons
This commit is contained in:
Benau 2019-12-04 09:10:01 +08:00
parent d6654637bc
commit 5aad3f1775
2 changed files with 11 additions and 8 deletions

View File

@ -1562,7 +1562,8 @@ void ClientLobby::handleClientCommand(const std::string& cmd)
{ {
msg = msg.substr(0, msg.size() - 2); msg = msg.substr(0, msg.size() - 2);
NetworkingLobby::getInstance()->addMoreServerInfo( NetworkingLobby::getInstance()->addMoreServerInfo(
(std::string("STK addon: ") + msg).c_str()); StringUtils::utf8ToWide
(std::string("STK addon: ") + msg));
} }
} }
} }
@ -1618,7 +1619,8 @@ void ClientLobby::handleClientCommand(const std::string& cmd)
{ {
msg = msg.substr(0, msg.size() - 2); msg = msg.substr(0, msg.size() - 2);
NetworkingLobby::getInstance()->addMoreServerInfo( NetworkingLobby::getInstance()->addMoreServerInfo(
(std::string("Local addon: ") + msg).c_str()); StringUtils::utf8ToWide(
std::string("Local addon: ") + msg));
} }
} }
} }

View File

@ -4986,7 +4986,8 @@ void ServerLobby::handleServerCommand(Event* event, STKPeer* peer) const
else else
{ {
msg = msg.substr(0, msg.size() - 2); msg = msg.substr(0, msg.size() - 2);
chat->encodeString16((std::string("Server addon: ") + msg).c_str()); chat->encodeString16(StringUtils::utf8ToWide(
std::string("Server addon: ") + msg));
} }
} }
peer->sendPacket(chat, true/*reliable*/); peer->sendPacket(chat, true/*reliable*/);
@ -5113,13 +5114,13 @@ void ServerLobby::handleServerCommand(Event* event, STKPeer* peer) const
bool found = total_addons.find(addon_id_test) != total_addons.end(); bool found = total_addons.find(addon_id_test) != total_addons.end();
if (found) if (found)
{ {
chat->encodeString16((std::string chat->encodeString16(StringUtils::utf8ToWide(std::string
("Server has addon ") + argv[1]).c_str()); ("Server has addon ") + argv[1]));
} }
else else
{ {
chat->encodeString16((std::string chat->encodeString16(StringUtils::utf8ToWide(std::string
("Server has no addon ") + argv[1]).c_str()); ("Server has no addon ") + argv[1]));
} }
} }
peer->sendPacket(chat, true/*reliable*/); peer->sendPacket(chat, true/*reliable*/);
@ -5132,7 +5133,7 @@ void ServerLobby::handleServerCommand(Event* event, STKPeer* peer) const
chat->setSynchronous(true); chat->setSynchronous(true);
std::string msg = "Unknown command: "; std::string msg = "Unknown command: ";
msg += cmd; msg += cmd;
chat->encodeString16( msg.c_str()); chat->encodeString16(StringUtils::utf8ToWide(msg));
peer->sendPacket(chat, true/*reliable*/); peer->sendPacket(chat, true/*reliable*/);
delete chat; delete chat;
} }