Bug #831
- Fixed bug #831 that imposed an arbitrary and incorrect assumption that caused some date fields from being parsed properly.
This commit is contained in:
@@ -185,6 +185,7 @@
|
|||||||
(thanks to Owen Clarke).
|
(thanks to Owen Clarke).
|
||||||
+ Fixed bug #808, which generated compiler warnings on Solarix (thanks to
|
+ Fixed bug #808, which generated compiler warnings on Solarix (thanks to
|
||||||
Owen Clarke).
|
Owen Clarke).
|
||||||
|
+ Fixed bug #831, which prevented some date fields from being properly parsed.
|
||||||
|
|
||||||
# Untracked Bugs, biggest first.
|
# Untracked Bugs, biggest first.
|
||||||
+ Fixed bug that required the '%YAML' prologue in a YAML import.
|
+ Fixed bug that required the '%YAML' prologue in a YAML import.
|
||||||
|
|||||||
11
src/Date.cpp
11
src/Date.cpp
@@ -128,10 +128,6 @@ Date::Date (const int m, const int d, const int y,
|
|||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
Date::Date (const std::string& input, const std::string& format /* = "m/d/Y" */)
|
Date::Date (const std::string& input, const std::string& format /* = "m/d/Y" */)
|
||||||
{
|
{
|
||||||
// Perhaps it is an epoch date, in string form?
|
|
||||||
if (isEpoch (input))
|
|
||||||
return;
|
|
||||||
|
|
||||||
// Before parsing according to "format", perhaps this is a relative date?
|
// Before parsing according to "format", perhaps this is a relative date?
|
||||||
if (isRelativeDate (input))
|
if (isRelativeDate (input))
|
||||||
return;
|
return;
|
||||||
@@ -145,6 +141,10 @@ Date::Date (const std::string& input, const std::string& format /* = "m/d/Y" */)
|
|||||||
if (n.getDate (format, _t) && n.depleted ())
|
if (n.getDate (format, _t) && n.depleted ())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
// Perhaps it is an epoch date, in string form?
|
||||||
|
if (isEpoch (input))
|
||||||
|
return;
|
||||||
|
|
||||||
throw ::format (STRING_DATE_INVALID_FORMAT, input, format);
|
throw ::format (STRING_DATE_INVALID_FORMAT, input, format);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -771,8 +771,7 @@ void Date::operator++ (int)
|
|||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
bool Date::isEpoch (const std::string& input)
|
bool Date::isEpoch (const std::string& input)
|
||||||
{
|
{
|
||||||
if (digitsOnly (input) &&
|
if (digitsOnly (input) &&
|
||||||
input.length () > 8 &&
|
|
||||||
input.length () <= 10 )
|
input.length () <= 10 )
|
||||||
{
|
{
|
||||||
_t = (time_t) atoi (input.c_str ());
|
_t = (time_t) atoi (input.c_str ());
|
||||||
|
|||||||
Reference in New Issue
Block a user