[Python-checkins] r75012 - in python/branches/py3k: Lib/test/test_time.py Misc/ACKS Modules/timemodule.c
brett.cannon
python-checkins at python.org
Tue Sep 22 02:32:59 CEST 2009
Author: brett.cannon
Date: Tue Sep 22 02:32:59 2009
New Revision: 75012
Log:
Merged revisions 75011 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r75011 | brett.cannon | 2009年09月21日 17:29:48 -0700 (2009年9月21日) | 10 lines
When range checking was added to time.strftime() a check was placed on tm_isdst
to make sure it fell within [-1, 1] just in case someone implementing
strftime() in libc was stupid enough to assume this. Turns out, though, some
OSs (e.g. zOS) are stupid enough to use values outside of this range for time
structs created by the system itself. So instead of throwing a ValueError,
tm_isdst is now normalized before being passed to strftime().
Fixes issue #6823. Thanks Robert Shapiro for diagnosing the problem and
contributing an initial patch.
........
Modified:
python/branches/py3k/ (props changed)
python/branches/py3k/Lib/test/test_time.py
python/branches/py3k/Misc/ACKS
python/branches/py3k/Modules/timemodule.c
Modified: python/branches/py3k/Lib/test/test_time.py
==============================================================================
--- python/branches/py3k/Lib/test/test_time.py (original)
+++ python/branches/py3k/Lib/test/test_time.py Tue Sep 22 02:32:59 2009
@@ -87,11 +87,6 @@
(1900, 1, 1, 0, 0, 0, 0, -1, -1))
self.assertRaises(ValueError, time.strftime, '',
(1900, 1, 1, 0, 0, 0, 0, 367, -1))
- # Check daylight savings flag [-1, 1]
- self.assertRaises(ValueError, time.strftime, '',
- (1900, 1, 1, 0, 0, 0, 0, 1, -2))
- self.assertRaises(ValueError, time.strftime, '',
- (1900, 1, 1, 0, 0, 0, 0, 1, 2))
def test_default_values_for_zero(self):
# Make sure that using all zeros uses the proper default values.
Modified: python/branches/py3k/Misc/ACKS
==============================================================================
--- python/branches/py3k/Misc/ACKS (original)
+++ python/branches/py3k/Misc/ACKS Tue Sep 22 02:32:59 2009
@@ -674,6 +674,7 @@
Denis Severson
Ian Seyer
Ha Shao
+Richard Shapiro
Bruce Sherwood
Pete Shinners
Michael Shiplett
Modified: python/branches/py3k/Modules/timemodule.c
==============================================================================
--- python/branches/py3k/Modules/timemodule.c (original)
+++ python/branches/py3k/Modules/timemodule.c Tue Sep 22 02:32:59 2009
@@ -512,11 +512,13 @@
PyErr_SetString(PyExc_ValueError, "day of year out of range");
return NULL;
}
- if (buf.tm_isdst < -1 || buf.tm_isdst > 1) {
- PyErr_SetString(PyExc_ValueError,
- "daylight savings flag 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;
+ else if (buf.tm_isdst > 1)
+ buf.tm_isdst = 1;
#ifdef HAVE_WCSFTIME
tmpfmt = PyBytes_FromStringAndSize(NULL,
More information about the Python-checkins
mailing list