summaryrefslogtreecommitdiff
path: root/Source/Core/Common/StringUtil.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/Common/StringUtil.cpp')
-rw-r--r--Source/Core/Common/StringUtil.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/Source/Core/Common/StringUtil.cpp b/Source/Core/Common/StringUtil.cpp
index 67f88be160..d08e98b7ff 100644
--- a/Source/Core/Common/StringUtil.cpp
+++ b/Source/Core/Common/StringUtil.cpp
@@ -247,6 +247,25 @@ bool TryParse(const std::string& str, u32* const output)
return true;
}
+bool TryParse(const std::string& str, u64* const output)
+{
+ char* end_ptr = nullptr;
+
+ // Set errno to a clean slate
+ errno = 0;
+
+ u64 value = strtoull(str.c_str(), &end_ptr, 0);
+
+ if (end_ptr == nullptr || *end_ptr != '\0')
+ return false;
+
+ if (errno == ERANGE)
+ return false;
+
+ *output = value;
+ return true;
+}
+
bool TryParse(const std::string& str, bool* const output)
{
float value;