- Made the buffer depletion requirement optional for dateformat and ISO date
  parsing.
This commit is contained in:
Paul Beckingham 2014-06-29 10:31:52 -04:00
parent 5150e49f67
commit ecb6adbbeb
2 changed files with 7 additions and 6 deletions

View file

@ -129,9 +129,10 @@ Date::Date (const int m, const int d, const int y,
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
Date::Date ( Date::Date (
const std::string& input, const std::string& input,
const std::string& format /* = "m/d/Y" */, const std::string& format /* = "m/d/Y" */,
const bool iso /* = true */, const bool iso /* = true */,
const bool epoch /* = true */) const bool epoch /* = true */,
const bool require_depletion /* = true */)
{ {
// Check first to see if this is supported as a named date. // Check first to see if this is supported as a named date.
Variant v; Variant v;
@ -145,13 +146,13 @@ Date::Date (
Nibbler n (input); Nibbler n (input);
n.save (); n.save ();
#ifdef NIBBLER_FEATURE_DATE #ifdef NIBBLER_FEATURE_DATE
if (n.getDate (format, _t) && n.depleted ()) if (n.getDate (format, _t) && (!require_depletion || n.depleted ()))
return; return;
#endif #endif
// Parse an ISO date. // Parse an ISO date.
n.restore (); n.restore ();
if (iso && n.getDateISO (_t) && n.depleted ()) if (iso && n.getDateISO (_t) && (!require_depletion || n.depleted ()))
return; return;
// Perhaps it is an epoch date, in string form? // Perhaps it is an epoch date, in string form?

View file

@ -40,7 +40,7 @@ public:
Date (time_t); Date (time_t);
Date (const int, const int, const int); Date (const int, const int, const int);
Date (const int, const int, const int, const int, const int, const int); Date (const int, const int, const int, const int, const int, const int);
Date (const std::string&, const std::string& format = "m/d/Y", const bool iso = true, const bool epoch = true); Date (const std::string&, const std::string& format = "m/d/Y", const bool iso = true, const bool epoch = true, const bool require_depletion = true);
Date (const Date&); Date (const Date&);
virtual ~Date (); virtual ~Date ();