diff options
author | Peter Keresztes Schmidt <carbenium@outlook.com> | 2020-08-16 16:27:19 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-16 16:27:19 +0200 |
commit | df29f605959aa449a3962199ee1cac3e09e05e38 (patch) | |
tree | 517227f53fcd9ef521487c5421523af5ef47a1e1 | |
parent | 86dc58974a46b554042f33df674e3e40ef0cec1e (diff) |
Core/ChatCommands: Honor exact matches during enum arg parsing (PR #25255)
-rw-r--r-- | src/server/game/Chat/ChatCommands/ChatCommandArgs.h | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/server/game/Chat/ChatCommands/ChatCommandArgs.h b/src/server/game/Chat/ChatCommands/ChatCommandArgs.h index d54c684f581..242b806446d 100644 --- a/src/server/game/Chat/ChatCommands/ChatCommandArgs.h +++ b/src/server/game/Chat/ChatCommands/ChatCommandArgs.h @@ -142,10 +142,13 @@ struct ArgInfo<T, std::enable_if_t<std::is_enum_v<T>>> if (it == SearchMap.end() || !StringStartsWith(it->first, s)) // not a match return nullptr; - auto it2 = it; - ++it2; - if (it2 != SearchMap.end() && StringStartsWith(it2->first, s)) // not unique - return nullptr; + if (it->first != s) // we don't have an exact match - check if it is unique + { + auto it2 = it; + ++it2; + if (it2 != SearchMap.end() && StringStartsWith(it2->first, s)) // not unique + return nullptr; + } if (it->second) return &*it->second; |