[Python-checkins] python/dist/src/Modules timemodule.c,2.129,2.130

gvanrossum@users.sourceforge.net gvanrossum@users.sourceforge.net
2002年7月19日 10:06:49 -0700


Update of /cvsroot/python/python/dist/src/Modules
In directory usw-pr-cvs1:/tmp/cvs-serv3342
Modified Files:
	timemodule.c 
Log Message:
Patch to call the Pure python strptime implementation if there's no
C implementation. See SF patch 474274, by Brett Cannon.
(As an experiment, I'm adding a line that #undefs HAVE_STRPTIME,
so that you'll always get the Python version. This is so that it
gets some good exercise. We should eventually delete that line.)
Index: timemodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/timemodule.c,v
retrieving revision 2.129
retrieving revision 2.130
diff -C2 -d -r2.129 -r2.130
*** timemodule.c	16 Jul 2002 01:29:19 -0000	2.129
--- timemodule.c	19 Jul 2002 17:06:47 -0000	2.130
***************
*** 413,416 ****
--- 413,417 ----
 #endif /* HAVE_STRFTIME */
 
+ #undef HAVE_STRPTIME
 #ifdef HAVE_STRPTIME
 
***************
*** 446,449 ****
--- 447,466 ----
 }
 
+ #endif /* HAVE_STRPTIME */
+ 
+ #ifndef HAVE_STRPTIME
+ 
+ static PyObject *
+ time_strptime(PyObject *self, PyObject *args)
+ {
+ PyObject *strptime_module = PyImport_ImportModule("_strptime");
+ 
+ if (!strptime_module) 
+ return NULL;
+ return PyObject_CallMethod(strptime_module, "strptime", "O", args);
+ }
+ 
+ #endif /* !HAVE_STRPTIME */
+ 
 PyDoc_STRVAR(strptime_doc,
 "strptime(string, format) -> tuple\n\
***************
*** 451,455 ****
 Parse a string to a time tuple according to a format specification.\n\
 See the library reference manual for formatting codes (same as strftime()).");
! #endif /* HAVE_STRPTIME */
 
 static PyObject *
--- 468,472 ----
 Parse a string to a time tuple according to a format specification.\n\
 See the library reference manual for formatting codes (same as strftime()).");
! 
 
 static PyObject *
***************
*** 554,560 ****
 	{"strftime",	time_strftime, METH_VARARGS, strftime_doc},
 #endif
- #ifdef HAVE_STRPTIME
 	{"strptime",	time_strptime, METH_VARARGS, strptime_doc},
- #endif
 	{NULL,		NULL}		/* sentinel */
 };
--- 571,575 ----

AltStyle によって変換されたページ (->オリジナル) /