aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Chat/ChatCommands
diff options
context:
space:
mode:
authorTreeston <treeston.mmoc@gmail.com>2020-08-26 23:31:45 +0200
committerShauren <shauren.trinity@gmail.com>2022-02-04 00:27:13 +0100
commitbe9dadc18949c6877f486eab9ee95237224a237e (patch)
treef34fcd28a0acf43d54c4bf853a24800090a2761b /src/server/game/Chat/ChatCommands
parent7b88fd607e974843481d3055eb2eebc53c2a4b49 (diff)
Common/Utilities: Centralize string -> T conversion in StringConvert.h (PR #25335)
(cherry picked from commit cd30e0b86ce6ee88386a91cebdf353fc55805c57)
Diffstat (limited to 'src/server/game/Chat/ChatCommands')
-rw-r--r--src/server/game/Chat/ChatCommands/ChatCommandArgs.h15
1 files changed, 3 insertions, 12 deletions
diff --git a/src/server/game/Chat/ChatCommands/ChatCommandArgs.h b/src/server/game/Chat/ChatCommands/ChatCommandArgs.h
index 271d4850f2a..e2270c0259f 100644
--- a/src/server/game/Chat/ChatCommands/ChatCommandArgs.h
+++ b/src/server/game/Chat/ChatCommands/ChatCommandArgs.h
@@ -21,6 +21,7 @@
#include "ChatCommandHelpers.h"
#include "ChatCommandTags.h"
#include "SmartEnum.h"
+#include "StringConvert.h"
#include "Util.h"
#include <charconv>
#include <map>
@@ -55,20 +56,10 @@ struct ArgInfo<T, std::enable_if_t<std::is_integral_v<T>>>
char const* next = args;
std::string_view token(args, Trinity::Impl::ChatCommands::tokenize(next));
- if (!token.length())
- return nullptr;
-
- std::from_chars_result result;
- if (StringStartsWith(token, "0x"))
- result = std::from_chars(token.data() + 2, token.data() + token.length(), val, 16);
- else if (StringStartsWith(token, "0b"))
- result = std::from_chars(token.data() + 2, token.data() + token.length(), val, 2);
+ if (Optional<T> v = StringTo<T>(token, 0))
+ val = *v;
else
- result = std::from_chars(token.data(), token.data() + token.length(), val, 10);
-
- if ((token.data() + token.length()) != result.ptr)
return nullptr;
-
return next;
}
};