[Python-checkins] python/nondist/sandbox/datetime datetime.c,1.14,1.15 datetime.h,1.8,1.9

tim_one@users.sourceforge.net tim_one@users.sourceforge.net
Thu, 21 Nov 2002 14:55:29 -0800


Update of /cvsroot/python/python/nondist/sandbox/datetime
In directory sc8-pr-cvs1:/tmp/cvs-serv776

Modified Files:
	datetime.c datetime.h 
Log Message:
Fixed one of the XXXs I introduced to get this to compile on Windows.
Simplified some macros that merely aliased other macros.
Lined things up better (I think some stuff got out of whack when
the file got tabified).


Index: datetime.c
===================================================================
RCS file: /cvsroot/python/python/nondist/sandbox/datetime/datetime.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -d -r1.14 -r1.15
*** datetime.c	21 Nov 2002 19:24:52 -0000	1.14
--- datetime.c	21 Nov 2002 22:55:25 -0000	1.15
***************
*** 24,60 ****
  
  /* Rename the long macros in datetime.h to more reasonable short names. */
! #define GET_YEAR(o)               PyDateTime_GET_YEAR(o)
! #define GET_MONTH(o)              PyDateTime_GET_MONTH(o)
! #define GET_DAY(o)                PyDateTime_GET_DAY(o)
! #define GET_HOUR(o)               PyDateTime_GET_HOUR(o)
! #define GET_MINUTE(o)             PyDateTime_GET_MINUTE(o)
! #define GET_SECOND(o)             PyDateTime_GET_SECOND(o)
! #define GET_MICROSECOND(o)        PyDateTime_GET_MICROSECOND(o)
  
  /* Date accessors. */
! #define SET_YEAR(o, v)            (((o)->data[0] = ((v) & 0xff00) >> 8), \
!                                    ((o)->data[1] = ((v) & 0x00ff)))
! #define SET_MONTH(o, v)           (PyDateTime_GET_MONTH(o) = (v))
! #define SET_DAY(o, v)             (PyDateTime_GET_DAY(o) = (v))
  
  /* Date/Time accessors. */
! #define SET_HOUR(o, v)            (PyDateTime_GET_HOUR(o) = (v))
! #define SET_MINUTE(o, v)          (PyDateTime_GET_MINUTE(o) = (v))
! #define SET_SECOND(o, v)          (PyDateTime_GET_SECOND(o) = (v))
! #define SET_MICROSECOND(o, v)     (((o)->data[7] = ((v) & 0xff0000) >> 16), \
!                                    ((o)->data[8] = ((v) & 0x00ff00) >> 8), \
!                                    ((o)->data[9] = ((v) & 0x0000ff)))
  
  /* Delta accessors. */
! #define GET_TD_DAYS(o)            (((PyDateTime_Delta *)(o))->days)
! #define GET_TD_SECONDS(o)         (((PyDateTime_Delta *)(o))->seconds)
! #define GET_TD_MICROSECONDS(o)    (((PyDateTime_Delta *)(o))->microseconds)
  
! #define SET_TD_DAYS(o, v)         ((o)->days = (v))
! #define SET_TD_SECONDS(o, v)      ((o)->seconds = (v))
  #define SET_TD_MICROSECONDS(o, v) ((o)->microseconds = (v))
  
  static PyTypeObject PyDateTime_DateType;
  static PyTypeObject PyDateTime_DateTimeType;
  
  /*
--- 24,62 ----
  
  /* Rename the long macros in datetime.h to more reasonable short names. */
! #define GET_YEAR		PyDateTime_GET_YEAR
! #define GET_MONTH		PyDateTime_GET_MONTH
! #define GET_DAY			PyDateTime_GET_DAY
! #define GET_HOUR		PyDateTime_GET_HOUR
! #define GET_MINUTE		PyDateTime_GET_MINUTE
! #define GET_SECOND		PyDateTime_GET_SECOND
! #define GET_MICROSECOND		PyDateTime_GET_MICROSECOND
  
  /* Date accessors. */
! #define SET_YEAR(o, v)		(((o)->data[0] = ((v) & 0xff00) >> 8), \
!                                  ((o)->data[1] = ((v) & 0x00ff)))
! #define SET_MONTH(o, v)		(PyDateTime_GET_MONTH(o) = (v))
! #define SET_DAY(o, v)		(PyDateTime_GET_DAY(o) = (v))
  
  /* Date/Time accessors. */
! #define SET_HOUR(o, v)		(PyDateTime_GET_HOUR(o) = (v))
! #define SET_MINUTE(o, v)	(PyDateTime_GET_MINUTE(o) = (v))
! #define SET_SECOND(o, v)	(PyDateTime_GET_SECOND(o) = (v))
! #define SET_MICROSECOND(o, v)	(((o)->data[7] = ((v) & 0xff0000) >> 16), \
!                                  ((o)->data[8] = ((v) & 0x00ff00) >> 8), \
!                                  ((o)->data[9] = ((v) & 0x0000ff)))
  
  /* Delta accessors. */
! #define GET_TD_DAYS(o)		(((PyDateTime_Delta *)(o))->days)
! #define GET_TD_SECONDS(o)	(((PyDateTime_Delta *)(o))->seconds)
! #define GET_TD_MICROSECONDS(o)	(((PyDateTime_Delta *)(o))->microseconds)
  
! #define SET_TD_DAYS(o, v)	((o)->days = (v))
! #define SET_TD_SECONDS(o, v)	((o)->seconds = (v))
  #define SET_TD_MICROSECONDS(o, v) ((o)->microseconds = (v))
  
+ /* Forward declarations. */
  static PyTypeObject PyDateTime_DateType;
  static PyTypeObject PyDateTime_DateTimeType;
+ static PyTypeObject PyDateTime_DeltaType;
  
  /*

Index: datetime.h
===================================================================
RCS file: /cvsroot/python/python/nondist/sandbox/datetime/datetime.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** datetime.h	21 Nov 2002 20:24:18 -0000	1.8
--- datetime.h	21 Nov 2002 22:55:26 -0000	1.9
***************
*** 22,41 ****
  }  PyDateTime_DateTime;
  
- /* XXX CLEAN THIS UP.  Using PyAPI_DATA doesn't work on Windows for
-  * XXX complicated reasons.  One would like  not to have the "static"
-  * XXX thingies here either, but with the global structure of #includes
-  * XXX right now, they're needed to prevent a slew of "undeclared name"
-  * XXX errors later.
-  */
- #if 0
- PyAPI_DATA(PyTypeObject) PyDateTime_DateType;
- PyAPI_DATA(PyTypeObject) PyDateTime_DateTimeType;
- PyAPI_DATA(PyTypeObject) PyDateTime_DeltaType;
- #else
- static PyTypeObject PyDateTime_DateType;
- static PyTypeObject PyDateTime_DateTimeType;
- static PyTypeObject PyDateTime_DeltaType;
- #endif
- 
  /* Apply for date instances. */
  #define PyDateTime_GET_YEAR(o)     (((PyDateTime_Date*)o)->data[0] << 8 \
--- 22,25 ----