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.)
This commit is contained in:
Guido van Rossum 2002-07-19 17:06:47 +00:00
parent 00efe7e798
commit d3c46d5463
1 changed files with 18 additions and 3 deletions

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