[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    kdelibs/kjs
From:       Harri Porten <porten () kde ! org>
Date:       2005-04-24 12:14:03
Message-ID: 20050424121403.D17AC62B () office ! kde ! org
[Download RAW message or body]

CVS commit by porten: 

correctly handle large year numbers in "MM/DD/YYYY" formats

also removed code that would emit warnings on previously out-of-range years


  M +5 -0      ChangeLog   1.63
  M +2 -17     date_object.cpp   1.100


--- kdelibs/kjs/ChangeLog  #1.62:1.63
@@ -1,2 +1,7 @@
+2005-04-24  Harri Porten  <porten@kde.org>
+
+        * date_object.cpp (KRFCDate_parseDate): correctly handle large
+        year numbers in "MM/DD/YYYY" formats
+
 2005-04-17  Harri Porten  <porten@kde.org>
 

--- kdelibs/kjs/date_object.cpp  #1.99:1.100
@@ -615,20 +615,4 @@ double KJS::parseDate(const UString &u)
 #endif
   double /*time_t*/ seconds = KRFCDate_parseDate( u );
-#ifdef KJS_VERBOSE
-  fprintf(stderr,"KRFCDate_parseDate returned seconds=%g\n",seconds);
-  bool withinLimits = true;
-  if ( sizeof(time_t) == 4 )
-  {
-    int limit = ((time_t)-1 < 0) ? 2038 : 2115;
-    if ( seconds > (limit-1970) * 365.25 * 86400 ) {
-      fprintf(stderr, "date above time_t limit. Year seems to be %d\n", \
                (int)(seconds/(365.25*86400)+1970));
-      withinLimits = false;
-    }
-  }
-  if ( withinLimits ) {
-    time_t lsec = (time_t)seconds;
-    fprintf(stderr, "this is: %s\n", ctime(&lsec));
-  }
-#endif
 
   return seconds == -1 ? NaN : seconds * 1000.0;
@@ -1003,5 +987,6 @@ double KJS::KRFCDate_parseDate(const USt
        }
 
-       return mktime(&t);
+       // better not use mktime() as it can't handle the full year range
+       return makeTime(&t, 0, false) / 1000.0;
      }
 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic