aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPeter Keresztes Schmidt <carbenium@outlook.com>2020-08-16 16:27:19 +0200
committerShauren <shauren.trinity@gmail.com>2022-01-26 22:16:24 +0100
commit2d1a1d8ac31564744f30e001486ddc90f7ed0449 (patch)
treee6442e0772f9c040541571acdbe3994087e22a23 /src
parentec44c8296d155aab8862987848a87a1a81049c12 (diff)
Core/ChatCommands: Honor exact matches during enum arg parsing (PR #25255)
(cherry picked from commit df29f605959aa449a3962199ee1cac3e09e05e38)
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Chat/ChatCommands/ChatCommandArgs.h11
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 6b5121c5044..05e065c6a2d 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;