From d6133057ca43c2c08fe880344843ba70008c2edc Mon Sep 17 00:00:00 2001 From: Yehonal Date: Sat, 20 Aug 2016 02:04:18 +0200 Subject: fixed crash on command execution seems that clang is now compilable and playable on linux too \o/ --- src/game/Chat/Chat.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/game/Chat/Chat.cpp b/src/game/Chat/Chat.cpp index 60617bb088..963d95d3d9 100644 --- a/src/game/Chat/Chat.cpp +++ b/src/game/Chat/Chat.cpp @@ -244,7 +244,7 @@ bool ChatHandler::ExecuteCommandInTable(std::vector const& table, c while (*text == ' ') ++text; - for (uint32 i = 0; i < table.size(); ++i) + for (uint32 i = 0; table[i].Name != nullptr; ++i) { if (!hasStringAbbr(table[i].Name, cmd.c_str())) continue; @@ -252,7 +252,7 @@ bool ChatHandler::ExecuteCommandInTable(std::vector const& table, c bool match = false; if (strlen(table[i].Name) > cmd.length()) { - for (uint32 j = 0; j < table.size(); ++j) + for (uint32 j = 0; table[j].Name != nullptr; ++j) { if (!hasStringAbbr(table[j].Name, cmd.c_str())) continue; @@ -348,7 +348,7 @@ bool ChatHandler::SetDataForCommandInTable(std::vector& table, char while (*text == ' ') ++text; - for (uint32 i = 0; i < table.size(); i++) + for (uint32 i = 0; table[i].Name != nullptr; i++) { // for data fill use full explicit command names if (table[i].Name != cmd) @@ -398,12 +398,12 @@ bool ChatHandler::ParseCommands(char const* text) std::string fullcmd; - if (m_session && AccountMgr::IsPlayerAccount(m_session->GetSecurity()) && !sWorld->getBoolConfig(CONFIG_ALLOW_PLAYER_COMMANDS)) - return false; - /// chat case (.command or !command format) if (m_session) { + if (m_session && AccountMgr::IsPlayerAccount(m_session->GetSecurity()) && !sWorld->getBoolConfig(CONFIG_ALLOW_PLAYER_COMMANDS)) + return false; + if (text[0] != '!' && text[0] != '.') return false; } @@ -494,7 +494,7 @@ Valid examples: bool ChatHandler::ShowHelpForSubCommands(std::vector const& table, char const* cmd, char const* subcmd) { std::string list; - for (uint32 i = 0; i < table.size(); ++i) + for (uint32 i = 0; table[i].Name != nullptr; ++i) { // must be available (ignore handler existence for show command with possible available subcommands) if (!isAvailable(table[i])) @@ -533,7 +533,7 @@ bool ChatHandler::ShowHelpForCommand(std::vector const& table, cons { if (*cmd) { - for (uint32 i = 0; i < table.size(); ++i) + for (uint32 i = 0; table[i].Name != nullptr; ++i) { // must be available (ignore handler existence for show command with possible available subcommands) if (!isAvailable(table[i])) @@ -563,7 +563,7 @@ bool ChatHandler::ShowHelpForCommand(std::vector const& table, cons } else { - for (uint32 i = 0; i < table.size(); ++i) + for (uint32 i = 0; table[i].Name != nullptr; ++i) { // must be available (ignore handler existence for show command with possible available subcommands) if (!isAvailable(table[i])) -- cgit v1.2.3