Merge pull request #6074 from delroth/netplay-fix
Fix NetPlay settings reset issue
This commit is contained in:
commit
1566f3ae7e
|
@ -226,25 +226,27 @@ std::string StripQuotes(const std::string& s)
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool TryParse(const std::string& str, u16* const output)
|
||||||
|
{
|
||||||
|
u64 value;
|
||||||
|
if (!TryParse(str, &value))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (value >= 0x10000ull && value <= 0xFFFFFFFFFFFF0000ull)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
*output = static_cast<u16>(value);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
bool TryParse(const std::string& str, u32* const output)
|
bool TryParse(const std::string& str, u32* const output)
|
||||||
{
|
{
|
||||||
char* endptr = nullptr;
|
u64 value;
|
||||||
|
if (!TryParse(str, &value))
|
||||||
// Reset errno to a value other than ERANGE
|
|
||||||
errno = 0;
|
|
||||||
|
|
||||||
unsigned long value = strtoul(str.c_str(), &endptr, 0);
|
|
||||||
|
|
||||||
if (!endptr || *endptr)
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (errno == ERANGE)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
#if ULONG_MAX > UINT_MAX
|
|
||||||
if (value >= 0x100000000ull && value <= 0xFFFFFFFF00000000ull)
|
if (value >= 0x100000000ull && value <= 0xFFFFFFFF00000000ull)
|
||||||
return false;
|
return false;
|
||||||
#endif
|
|
||||||
|
|
||||||
*output = static_cast<u32>(value);
|
*output = static_cast<u32>(value);
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -59,6 +59,7 @@ std::string ThousandSeparate(I value, int spaces = 0)
|
||||||
std::string StringFromBool(bool value);
|
std::string StringFromBool(bool value);
|
||||||
|
|
||||||
bool TryParse(const std::string& str, bool* output);
|
bool TryParse(const std::string& str, bool* output);
|
||||||
|
bool TryParse(const std::string& str, u16* output);
|
||||||
bool TryParse(const std::string& str, u32* output);
|
bool TryParse(const std::string& str, u32* output);
|
||||||
bool TryParse(const std::string& str, u64* output);
|
bool TryParse(const std::string& str, u64* output);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue