summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrett Cannon <bcannon@gmail.com>2009-09-22 19:15:35 (GMT)
committerBrett Cannon <bcannon@gmail.com>2009-09-22 19:15:35 (GMT)
commitec79b1ca21376c000c5514922d2a1b882d273f81 (patch)
treea643415575e841519ab525dfbc49493ff20020af
parent73753d354b41cab4d6cd15ed2308b9d1a6dc1514 (diff)
downloadcpython-ec79b1ca21376c000c5514922d2a1b882d273f81.zip
cpython-ec79b1ca21376c000c5514922d2a1b882d273f81.tar.gz
cpython-ec79b1ca21376c000c5514922d2a1b882d273f81.tar.bz2
Merged revisions 75020 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r75020 | brett.cannon | 2009-09-22 12:13:27 -0700 (Tue, 22 Sep 2009) | 1 line Fix whitespace. ........
-rw-r--r--Modules/timemodule.c85
1 files changed, 43 insertions, 42 deletions
diff --git a/Modules/timemodule.c b/Modules/timemodule.c
index af0e1a7..c101819 100644
--- a/Modules/timemodule.c
+++ b/Modules/timemodule.c
@@ -452,9 +452,9 @@ time_strftime(PyObject *self, PyObject *args)
} else if (!gettmarg(tup, &buf))
return NULL;
- /* Checks added to make sure strftime() does not crash Python by
- indexing blindly into some array for a textual representation
- by some bad index (fixes bug #897625).
+ /* Checks added to make sure strftime() does not crash Python by
+ indexing blindly into some array for a textual representation
+ by some bad index (fixes bug #897625).
Also support values of zero from Python code for arguments in which
that is out of range by forcing that value to the lowest value that
@@ -475,50 +475,50 @@ time_strftime(PyObject *self, PyObject *args)
(1) gettmarg() handles bounds-checking.
(2) Python's acceptable range is one greater than the range in C,
thus need to check against automatic decrement by gettmarg().
- */
+ */
if (buf.tm_mon == -1)
buf.tm_mon = 0;
else if (buf.tm_mon < 0 || buf.tm_mon > 11) {
- PyErr_SetString(PyExc_ValueError, "month out of range");
- return NULL;
- }
+ PyErr_SetString(PyExc_ValueError, "month out of range");
+ return NULL;
+ }
if (buf.tm_mday == 0)
buf.tm_mday = 1;
else if (buf.tm_mday < 0 || buf.tm_mday > 31) {
- PyErr_SetString(PyExc_ValueError, "day of month out of range");
- return NULL;
- }
- if (buf.tm_hour < 0 || buf.tm_hour > 23) {
- PyErr_SetString(PyExc_ValueError, "hour out of range");
- return NULL;
- }
- if (buf.tm_min < 0 || buf.tm_min > 59) {
- PyErr_SetString(PyExc_ValueError, "minute out of range");
- return NULL;
- }
- if (buf.tm_sec < 0 || buf.tm_sec > 61) {
- PyErr_SetString(PyExc_ValueError, "seconds out of range");
- return NULL;
- }
- /* tm_wday does not need checking of its upper-bound since taking
- ``% 7`` in gettmarg() automatically restricts the range. */
- if (buf.tm_wday < 0) {
- PyErr_SetString(PyExc_ValueError, "day of week out of range");
- return NULL;
- }
+ PyErr_SetString(PyExc_ValueError, "day of month out of range");
+ return NULL;
+ }
+ if (buf.tm_hour < 0 || buf.tm_hour > 23) {
+ PyErr_SetString(PyExc_ValueError, "hour out of range");
+ return NULL;
+ }
+ if (buf.tm_min < 0 || buf.tm_min > 59) {
+ PyErr_SetString(PyExc_ValueError, "minute out of range");
+ return NULL;
+ }
+ if (buf.tm_sec < 0 || buf.tm_sec > 61) {
+ PyErr_SetString(PyExc_ValueError, "seconds out of range");
+ return NULL;
+ }
+ /* tm_wday does not need checking of its upper-bound since taking
+ ``% 7`` in gettmarg() automatically restricts the range. */
+ if (buf.tm_wday < 0) {
+ PyErr_SetString(PyExc_ValueError, "day of week out of range");
+ return NULL;
+ }
if (buf.tm_yday == -1)
buf.tm_yday = 0;
else if (buf.tm_yday < 0 || buf.tm_yday > 365) {
- PyErr_SetString(PyExc_ValueError, "day of year out of range");
- return NULL;
- }
+ PyErr_SetString(PyExc_ValueError, "day of year out of range");
+ return NULL;
+ }
/* Normalize tm_isdst just in case someone foolishly implements %Z
based on the assumption that tm_isdst falls within the range of
[-1, 1] */
- if (buf.tm_isdst < -1)
- buf.tm_isdst = -1;
+ if (buf.tm_isdst < -1)
+ buf.tm_isdst = -1;
else if (buf.tm_isdst > 1)
- buf.tm_isdst = 1;
+ buf.tm_isdst = 1;
#ifdef HAVE_WCSFTIME
tmpfmt = PyBytes_FromStringAndSize(NULL,
@@ -614,14 +614,15 @@ is not present, current time as returned by localtime() is used.");
static PyObject *
time_strptime(PyObject *self, PyObject *args)
{
- PyObject *strptime_module = PyImport_ImportModuleNoBlock("_strptime");
- PyObject *strptime_result;
-
- if (!strptime_module)
- return NULL;
- strptime_result = PyObject_CallMethod(strptime_module, "_strptime_time", "O", args);
- Py_DECREF(strptime_module);
- return strptime_result;
+ PyObject *strptime_module = PyImport_ImportModuleNoBlock("_strptime");
+ PyObject *strptime_result;
+
+ if (!strptime_module)
+ return NULL;
+ strptime_result = PyObject_CallMethod(strptime_module,
+ "_strptime_time", "O", args);
+ Py_DECREF(strptime_module);
+ return strptime_result;
}
PyDoc_STRVAR(strptime_doc,