summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2006-09-30 11:17:34 (GMT)
committerGeorg Brandl <georg@python.org>2006-09-30 11:17:34 (GMT)
commit4ddfcd3b60b2c68f75a21a4f04b4a0f70caca7d5 (patch)
tree7dcf15eb27214fff779f43dbdf9789d43e265896
parent154324a8c3bcdde62acff8272388948e3d75cb51 (diff)
downloadcpython-4ddfcd3b60b2c68f75a21a4f04b4a0f70caca7d5.zip
cpython-4ddfcd3b60b2c68f75a21a4f04b4a0f70caca7d5.tar.gz
cpython-4ddfcd3b60b2c68f75a21a4f04b4a0f70caca7d5.tar.bz2
Bug #1556784: allow format strings longer than 127 characters in
datetime's strftime function.
-rw-r--r--Lib/test/test_datetime.py1
-rw-r--r--Misc/NEWS3
-rw-r--r--Modules/datetimemodule.c4
3 files changed, 6 insertions, 2 deletions
diff --git a/Lib/test/test_datetime.py b/Lib/test/test_datetime.py
index 203bea1..436cfca 100644
--- a/Lib/test/test_datetime.py
+++ b/Lib/test/test_datetime.py
@@ -844,6 +844,7 @@ class TestDate(HarmlessMixedComparison):
t = self.theclass(2005, 3, 2)
self.assertEqual(t.strftime("m:%m d:%d y:%y"), "m:03 d:02 y:05")
self.assertEqual(t.strftime(""), "") # SF bug #761337
+ self.assertEqual(t.strftime('x'*1000), 'x'*1000) # SF bug #1556784
self.assertRaises(TypeError, t.strftime) # needs an arg
self.assertRaises(TypeError, t.strftime, "one", "two") # too many args
diff --git a/Misc/NEWS b/Misc/NEWS
index d63ffb2..3cbb01c 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -106,6 +106,9 @@ Library
Extension Modules
-----------------
+- Bug #1556784: allow format strings longer than 127 characters in
+ datetime's strftime function.
+
- Fix itertools.count(n) to work with negative numbers again.
- RLIMIT_SBSIZE was added to the resource module where available.
diff --git a/Modules/datetimemodule.c b/Modules/datetimemodule.c
index 648ebe5..39a859f 100644
--- a/Modules/datetimemodule.c
+++ b/Modules/datetimemodule.c
@@ -1149,9 +1149,9 @@ wrap_strftime(PyObject *object, PyObject *format, PyObject *timetuple,
PyObject *newfmt = NULL; /* py string, the output format */
char *pnew; /* pointer to available byte in output format */
- char totalnew; /* number bytes total in output format buffer,
+ int totalnew; /* number bytes total in output format buffer,
exclusive of trailing \0 */
- char usednew; /* number bytes used so far in output format buffer */
+ int usednew; /* number bytes used so far in output format buffer */
char *ptoappend; /* pointer to string to append to output buffer */
int ntoappend; /* # of bytes to append to output buffer */