mirror of
https://github.com/pocoproject/poco.git
synced 2025-02-20 22:31:23 +01:00
NumberParser::parseHex[64](): allow 0x/0X prefix
This commit is contained in:
parent
7a6f54e0f0
commit
622d9d4c6c
@ -84,7 +84,9 @@ unsigned NumberParser::parseHex(const std::string& s)
|
||||
|
||||
bool NumberParser::tryParseHex(const std::string& s, unsigned& value)
|
||||
{
|
||||
return strToInt(s.c_str(), value, NUM_BASE_HEX);
|
||||
int offset = 0;
|
||||
if (s.size() > 2 && s[0] == '0' && (s[1] == 'x' || s[1] == 'X')) offset = 2;
|
||||
return strToInt(s.c_str() + offset, value, NUM_BASE_HEX);
|
||||
}
|
||||
|
||||
|
||||
@ -151,7 +153,9 @@ UInt64 NumberParser::parseHex64(const std::string& s)
|
||||
|
||||
bool NumberParser::tryParseHex64(const std::string& s, UInt64& value)
|
||||
{
|
||||
return strToInt(s.c_str(), value, NUM_BASE_HEX);
|
||||
int offset = 0;
|
||||
if (s.size() > 2 && s[0] == '0' && (s[1] == 'x' || s[1] == 'X')) offset = 2;
|
||||
return strToInt(s.c_str() + offset, value, NUM_BASE_HEX);
|
||||
}
|
||||
|
||||
|
||||
|
@ -74,6 +74,8 @@ void NumberParserTest::testParse()
|
||||
assert(NumberParser::parse("-0123") == -123);
|
||||
assert(NumberParser::parseUnsigned("123") == 123);
|
||||
assert(NumberParser::parseHex("12AB") == 0x12ab);
|
||||
assert(NumberParser::parseHex("0x12AB") == 0x12ab);
|
||||
assert(NumberParser::parseHex("0X12AB") == 0x12ab);
|
||||
assert(NumberParser::parseHex("00") == 0);
|
||||
assert(NumberParser::parseOct("123") == 0123);
|
||||
assert(NumberParser::parseOct("0123") == 0123);
|
||||
|
Loading…
x
Reference in New Issue
Block a user