]> granicus.if.org Git - python/commitdiff
Patch to call the Pure python strptime implementation if there's no
authorGuido van Rossum <guido@python.org>
Fri, 19 Jul 2002 17:06:47 +0000 (17:06 +0000)
committerGuido van Rossum <guido@python.org>
Fri, 19 Jul 2002 17:06:47 +0000 (17:06 +0000)
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.)

Modules/timemodule.c

index dbb4456479a80234c51323b4c5af2444e90b02e0..eb48c2bd10870c76405f6e686bafcdf03a4e121a 100644 (file)
@@ -412,6 +412,7 @@ See the library reference manual for formatting codes. When the time tuple\n\
 is not present, current time as returned by localtime() is used.");
 #endif /* HAVE_STRFTIME */
 
+#undef HAVE_STRPTIME
 #ifdef HAVE_STRPTIME
 
 #if 0
@@ -445,12 +446,28 @@ time_strptime(PyObject *self, PyObject *args)
        return tmtotuple(&tm);
 }
 
+#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\
 \n\
 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 *
 time_asctime(PyObject *self, PyObject *args)
@@ -553,9 +570,7 @@ static PyMethodDef time_methods[] = {
 #ifdef HAVE_STRFTIME
        {"strftime",    time_strftime, METH_VARARGS, strftime_doc},
 #endif
-#ifdef HAVE_STRPTIME
        {"strptime",    time_strptime, METH_VARARGS, strptime_doc},
-#endif
        {NULL,          NULL}           /* sentinel */
 };