[pypy-svn] r50888 - pypy/dist/pypy/module/rctime

fijal at codespeak.net fijal at codespeak.net
Tue Jan 22 18:56:32 CET 2008


Author: fijal
Date: Tue Jan 22 18:56:31 2008
New Revision: 50888

Modified:
   pypy/dist/pypy/module/rctime/interp_time.py
Log:
Make rctime 64 bit


Modified: pypy/dist/pypy/module/rctime/interp_time.py
==============================================================================
--- pypy/dist/pypy/module/rctime/interp_time.py	(original)
+++ pypy/dist/pypy/module/rctime/interp_time.py	Tue Jan 22 18:56:31 2008
@@ -172,15 +172,15 @@
 def _tm_to_tuple(space, t):
     time_tuple = []
 
-    time_tuple.append(space.wrap(t.c_tm_year + 1900))
-    time_tuple.append(space.wrap(t.c_tm_mon + 1)) # want january == 1
-    time_tuple.append(space.wrap(t.c_tm_mday))
-    time_tuple.append(space.wrap(t.c_tm_hour))
-    time_tuple.append(space.wrap(t.c_tm_min))
-    time_tuple.append(space.wrap(t.c_tm_sec))
-    time_tuple.append(space.wrap((t.c_tm_wday + 6) % 7)) # want monday == 0
-    time_tuple.append(space.wrap(t.c_tm_yday + 1)) # want january, 1 == 1
-    time_tuple.append(space.wrap(t.c_tm_isdst))
+    time_tuple.append(space.wrap(rffi.getintfield(t, 'c_tm_year') + 1900))
+    time_tuple.append(space.wrap(rffi.getintfield(t, 'c_tm_mon') + 1)) # want january == 1
+    time_tuple.append(space.wrap(rffi.getintfield(t, 'c_tm_mday')) )
+    time_tuple.append(space.wrap(rffi.getintfield(t, 'c_tm_hour')) )
+    time_tuple.append(space.wrap(rffi.getintfield(t, 'c_tm_min')) )
+    time_tuple.append(space.wrap(rffi.getintfield(t, 'c_tm_sec')) )
+    time_tuple.append(space.wrap((rffi.getintfield(t, 'c_tm_wday') + 6) % 7)) # want monday == 0
+    time_tuple.append(space.wrap(rffi.getintfield(t, 'c_tm_yday') + 1)) # want january, 1 == 1
+    time_tuple.append(space.wrap(rffi.getintfield(t, 'c_tm_isdst')) )
     
     w_struct_time = _get_module_object(space, 'struct_time')
     w_time_tuple = space.newtuple(time_tuple)
@@ -235,14 +235,17 @@
             raise OperationError(space.w_ValueError,
                 space.wrap("year out of range"))
 
-    if glob_buf.c_tm_wday < 0:
+    if rffi.getintfield(glob_buf, 'c_tm_wday') < 0:
         raise OperationError(space.w_ValueError,
                              space.wrap("day of week out of range"))
 
     rffi.setintfield(glob_buf, 'c_tm_year', y - 1900)
-    rffi.setintfield(glob_buf, 'c_tm_mon', glob_buf.c_tm_mon - 1)
-    rffi.setintfield(glob_buf, 'c_tm_wday', (glob_buf.c_tm_wday + 1) % 7)
-    rffi.setintfield(glob_buf, 'c_tm_yday', glob_buf.c_tm_yday - 1)
+    rffi.setintfield(glob_buf, 'c_tm_mon',
+                     rffi.getintfield(glob_buf, 'c_tm_mon') - 1)
+    rffi.setintfield(glob_buf, 'c_tm_wday',
+                     (rffi.getintfield(glob_buf, 'c_tm_wday') + 1) % 7)
+    rffi.setintfield(glob_buf, 'c_tm_yday',
+                     rffi.getintfield(glob_buf, 'c_tm_yday') - 1)
 
     return glob_buf
 
@@ -398,25 +401,25 @@
     # indexing blindly into some array for a textual representation
     # by some bad index (fixes bug #897625).
     # No check for year since handled in gettmarg().
-    if buf_value.c_tm_mon < 0 or buf_value.c_tm_mon > 11:
+    if rffi.getintfield(buf_value, 'c_tm_mon') < 0 or rffi.getintfield(buf_value, 'c_tm_mon') > 11:
         raise OperationError(space.w_ValueError,
                              space.wrap("month out of range"))
-    if buf_value.c_tm_mday < 1 or buf_value.c_tm_mday > 31:
+    if rffi.getintfield(buf_value, 'c_tm_mday') < 1 or rffi.getintfield(buf_value, 'c_tm_mday') > 31:
         raise OperationError(space.w_ValueError,
                              space.wrap("day of month out of range"))
-    if buf_value.c_tm_hour < 0 or buf_value.c_tm_hour > 23:
+    if rffi.getintfield(buf_value, 'c_tm_hour') < 0 or rffi.getintfield(buf_value, 'c_tm_hour') > 23:
         raise OperationError(space.w_ValueError,
                              space.wrap("hour out of range"))
-    if buf_value.c_tm_min < 0 or buf_value.c_tm_min > 59:
+    if rffi.getintfield(buf_value, 'c_tm_min') < 0 or rffi.getintfield(buf_value, 'c_tm_min') > 59:
         raise OperationError(space.w_ValueError,
                              space.wrap("minute out of range"))
-    if buf_value.c_tm_sec < 0 or buf_value.c_tm_sec > 61:
+    if rffi.getintfield(buf_value, 'c_tm_sec') < 0 or rffi.getintfield(buf_value, 'c_tm_sec') > 61:
         raise OperationError(space.w_ValueError,
                              space.wrap("seconds out of range"))
-    if buf_value.c_tm_yday < 0 or buf_value.c_tm_yday > 365:
+    if rffi.getintfield(buf_value, 'c_tm_yday') < 0 or rffi.getintfield(buf_value, 'c_tm_yday') > 365:
         raise OperationError(space.w_ValueError,
                              space.wrap("day of year out of range"))
-    if buf_value.c_tm_isdst < -1 or buf_value.c_tm_isdst > 1:
+    if rffi.getintfield(buf_value, 'c_tm_isdst') < -1 or rffi.getintfield(buf_value, 'c_tm_isdst') > 1:
         raise OperationError(space.w_ValueError,
                              space.wrap("daylight savings flag out of range"))
 



More information about the Pypy-commit mailing list