aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Keresztes Schmidt <carbenium@outlook.com>2020-08-22 17:36:13 +0200
committerGitHub <noreply@github.com>2020-08-22 17:36:13 +0200
commit617a769d6f8dc51d049296fbccca724713916ed4 (patch)
tree00d2574e3e062d6de88f3859bbf27628ed2ec32f
parent522a4cb1a66539a656c44342d7652c3065a90588 (diff)
Core/ChatCommands: Add std::wstring argument type (#25302)
-rw-r--r--src/server/game/Chat/ChatCommands/ChatCommandArgs.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/server/game/Chat/ChatCommands/ChatCommandArgs.h b/src/server/game/Chat/ChatCommands/ChatCommandArgs.h
index 2e33384ee42..504f4d0dca3 100644
--- a/src/server/game/Chat/ChatCommands/ChatCommandArgs.h
+++ b/src/server/game/Chat/ChatCommands/ChatCommandArgs.h
@@ -120,6 +120,25 @@ struct ArgInfo<std::string, void>
}
};
+// wstring
+template <>
+struct ArgInfo<std::wstring, void>
+{
+ static char const* TryConsume(std::wstring& val, char const* args)
+ {
+ std::string utf8Str;
+ char const* ret = ArgInfo<std::string>::TryConsume(utf8Str, args);
+
+ if (!ret)
+ return nullptr;
+
+ if (!Utf8toWStr(utf8Str, val))
+ return nullptr;
+
+ return ret;
+ }
+};
+
// enum
template <typename T>
struct ArgInfo<T, std::enable_if_t<std::is_enum_v<T>>>