ISO8601d: ::parse_named now only considers the first token.

This commit is contained in:
Paul Beckingham 2015-10-04 13:26:10 -04:00
parent b1d2d6d5e8
commit 5018057f19

View file

@ -240,9 +240,7 @@ bool ISO8601d::parse (
// Check the values and determine time_t.
if (validate ())
{
// Record cursor position.
start = n.cursor ();
resolve ();
return true;
}
@ -259,9 +257,7 @@ bool ISO8601d::parse (
// Check the values and determine time_t.
if (validate ())
{
// Record cursor position.
start = n.cursor ();
resolve ();
return true;
}
@ -590,17 +586,19 @@ bool ISO8601d::parse_formatted (Nibbler& n, const std::string& format)
////////////////////////////////////////////////////////////////////////////////
bool ISO8601d::parse_named (Nibbler& n)
{
Variant v;
if (namedDates (n.str ().substr (n.cursor ()), v))
n.save ();
std::string token;
if (n.getUntilWS (token))
{
Variant v;
if (namedDates (token, v))
{
// Advance n by the length of the found item.
std::string dummy;
n.getUntilEOS (dummy);
_date = v.get_date ();
return true;
}
}
n.restore ();
return false;
}