From ecb6adbbeb0101bb3b4a82ef46989a67607aa56d Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 29 Jun 2014 10:31:52 -0400 Subject: [PATCH] Date - Made the buffer depletion requirement optional for dateformat and ISO date parsing. --- src/Date.cpp | 11 ++++++----- src/Date.h | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/Date.cpp b/src/Date.cpp index 7a10ebd98..c71112b95 100644 --- a/src/Date.cpp +++ b/src/Date.cpp @@ -129,9 +129,10 @@ Date::Date (const int m, const int d, const int y, //////////////////////////////////////////////////////////////////////////////// Date::Date ( const std::string& input, - const std::string& format /* = "m/d/Y" */, - const bool iso /* = true */, - const bool epoch /* = true */) + const std::string& format /* = "m/d/Y" */, + const bool iso /* = true */, + const bool epoch /* = true */, + const bool require_depletion /* = true */) { // Check first to see if this is supported as a named date. Variant v; @@ -145,13 +146,13 @@ Date::Date ( Nibbler n (input); n.save (); #ifdef NIBBLER_FEATURE_DATE - if (n.getDate (format, _t) && n.depleted ()) + if (n.getDate (format, _t) && (!require_depletion || n.depleted ())) return; #endif // Parse an ISO date. n.restore (); - if (iso && n.getDateISO (_t) && n.depleted ()) + if (iso && n.getDateISO (_t) && (!require_depletion || n.depleted ())) return; // Perhaps it is an epoch date, in string form? diff --git a/src/Date.h b/src/Date.h index a1087469a..0c21aec24 100644 --- a/src/Date.h +++ b/src/Date.h @@ -40,7 +40,7 @@ public: Date (time_t); Date (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&); virtual ~Date ();