Do not consume whitespace/delimiters after date in DateParse()
Set the end iterator to the end of the actually parsed date, instead of consuming any ultimately unparsed whitespace/delimiters possibly following the date.
This commit is contained in:
committed by
Vadim Zeitlin
parent
945738042d
commit
088e643d37
@@ -1866,17 +1866,19 @@ wxDateTime::ParseDate(const wxString& date, wxString::const_iterator *end)
|
|||||||
// tokenize the string
|
// tokenize the string
|
||||||
while ( p != pEnd )
|
while ( p != pEnd )
|
||||||
{
|
{
|
||||||
// skip white space and date delimiters
|
|
||||||
if ( wxStrchr(".,/-\t\r\n ", *p) )
|
|
||||||
{
|
|
||||||
++p;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
// modify copy of the iterator as we're not sure if the next token is
|
// modify copy of the iterator as we're not sure if the next token is
|
||||||
// still part of the date at all
|
// still part of the date at all
|
||||||
wxString::const_iterator pCopy = p;
|
wxString::const_iterator pCopy = p;
|
||||||
|
|
||||||
|
// skip white space and date delimiters
|
||||||
|
while ( pCopy != pEnd && wxStrchr(".,/-\t\r\n ", *pCopy) )
|
||||||
|
{
|
||||||
|
++pCopy;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( pCopy == pEnd )
|
||||||
|
break;
|
||||||
|
|
||||||
// we can have either alphabetic or numeric token, start by testing if
|
// we can have either alphabetic or numeric token, start by testing if
|
||||||
// it's the latter
|
// it's the latter
|
||||||
unsigned long val;
|
unsigned long val;
|
||||||
|
|||||||
@@ -1253,7 +1253,7 @@ void DateTimeTestCase::TestDateParse()
|
|||||||
|
|
||||||
// valid, but followed by something
|
// valid, but followed by something
|
||||||
{ "Dec 31 1979 was the end of 70s",
|
{ "Dec 31 1979 was the end of 70s",
|
||||||
{ 31, wxDateTime::Dec, 1979 }, true, "was the end of 70s" },
|
{ 31, wxDateTime::Dec, 1979 }, true, " was the end of 70s" },
|
||||||
|
|
||||||
// some invalid ones too
|
// some invalid ones too
|
||||||
{ "29 Feb 2006" },
|
{ "29 Feb 2006" },
|
||||||
|
|||||||
Reference in New Issue
Block a user