]> git.saurik.com Git - wxWidgets.git/commitdiff
fix bug with parsing negative time zones in ParseRfc822Date()
authorVadim Zeitlin <vadim@wxwidgets.org>
Sun, 30 Dec 2007 23:35:40 +0000 (23:35 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sun, 30 Dec 2007 23:35:40 +0000 (23:35 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50955 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/changes.txt
include/wx/datetime.h
src/common/datetime.cpp
tests/datetime/datetimetest.cpp

index 0ffe732f149c22308fa6ee742b70ed3196df209d..14a1c96cc5abdf2c69d37e33e72da775cc1d96f3 100644 (file)
@@ -301,6 +301,7 @@ wxX11:
 All:
 
 - Fixed bug with parsing some dates in wxDateTime (Bob Pesner)
+- Fixed bug with parsing negative time zones in wxDateTime::ParseRfc822Date()
 
 All (GUI):
 
index 5028137aa276c32af0fa388cd08be6b9f70ba72f..4d78cf7ffc9ea4763b08f95f5990eb016fae7528 100644 (file)
@@ -418,7 +418,16 @@ public:
     {
     public:
         TimeZone(TZ tz);
-        TimeZone(wxDateTime_t offset = 0) { m_offset = offset; }
+
+        // create time zone object with the given offset
+        TimeZone(long offset = 0) { m_offset = offset; }
+
+        static TimeZone Make(long offset)
+        {
+            TimeZone tz;
+            tz.m_offset = offset;
+            return tz;
+        }
 
         long GetOffset() const { return m_offset; }
 
index c80eddf67d4ed4d2216f29cc65e4013b7e0b544f..39c81372eb0723a67a724749f647b42ff40bfbb4 100644 (file)
@@ -2971,7 +2971,7 @@ const wxChar *wxDateTime::ParseRfc822Date(const wxChar* date)
 
     // the spec was correct, construct the date from the values we found
     Set(day, mon, year, hour, min, sec);
-    MakeFromTimezone(TimeZone((wxDateTime_t)(offset*SEC_PER_MIN)));
+    MakeFromTimezone(TimeZone::Make(offset*SEC_PER_MIN));
 
     return p;
 }
index 8c584dd659f432e8ff43342d5103006a53a60129..d5e57251a2bb5c61743425dbc25d56abcdaae786 100644 (file)
@@ -750,17 +750,23 @@ void DateTimeTestCase::TestParceRFC822()
     {
         {
             _T("Sat, 18 Dec 1999 00:46:40 +0100"),
-            { 17, wxDateTime::Dec, 1999, 23, 46, 40, 0.0, wxDateTime::Inv_WeekDay, 0, 0 },
+            { 17, wxDateTime::Dec, 1999, 23, 46, 40 },
             true
         },
         {
             _T("Wed, 1 Dec 1999 05:17:20 +0300"),
-            {  1, wxDateTime::Dec, 1999, 2, 17, 20, 0.0, wxDateTime::Inv_WeekDay, 0, 0 },
+            {  1, wxDateTime::Dec, 1999, 2, 17, 20 },
             true
         },
         {
             _T("Sun, 28 Aug 2005 03:31:30 +0200"),
-            {  28, wxDateTime::Aug, 2005, 1, 31, 30, 0.0, wxDateTime::Inv_WeekDay, 0, 0 },
+            {  28, wxDateTime::Aug, 2005, 1, 31, 30 },
+            true
+        },
+
+        {
+            _T("Sat, 18 Dec 1999 10:48:30 -0500"),
+            {  18, wxDateTime::Dec, 1999, 15, 48, 30 },
             true
         },
     };