summaryrefslogtreecommitdiffstats
path: root/Objects/stringlib
diff options
context:
space:
mode:
authorBenjamin Peterson <benjamin@python.org>2013-05-17 22:35:28 (GMT)
committerBenjamin Peterson <benjamin@python.org>2013-05-17 22:35:28 (GMT)
commit48953632dfd3e78c4eee8be907a0b7900f46fa8c (patch)
tree43622878bddb1236d96180862cedeea72eaa6b9b /Objects/stringlib
parent3e269397e39d2d60a1b74c338a7d321852d71b85 (diff)
parentd2b58a9880d119b20e1fc1c82a3e2e2d9eaa0817 (diff)
downloadcpython-48953632dfd3e78c4eee8be907a0b7900f46fa8c.zip
cpython-48953632dfd3e78c4eee8be907a0b7900f46fa8c.tar.gz
cpython-48953632dfd3e78c4eee8be907a0b7900f46fa8c.tar.bz2
merge 3.3
Diffstat (limited to 'Objects/stringlib')
-rw-r--r--Objects/stringlib/unicode_format.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/Objects/stringlib/unicode_format.h b/Objects/stringlib/unicode_format.h
index 9429169..b01d756 100644
--- a/Objects/stringlib/unicode_format.h
+++ b/Objects/stringlib/unicode_format.h
@@ -638,7 +638,7 @@ MarkupIterator_next(MarkupIterator *self, SubString *literal,
SubString *format_spec, Py_UCS4 *conversion,
int *format_spec_needs_expanding)
{
- int at_end;
+ int at_end, hit_format_spec;
Py_UCS4 c = 0;
Py_ssize_t start;
int count;
@@ -723,12 +723,18 @@ MarkupIterator_next(MarkupIterator *self, SubString *literal,
/* we know we can't have a zero length string, so don't worry
about that case */
+ hit_format_spec = 0;
while (self->str.start < self->str.end) {
switch (c = PyUnicode_READ_CHAR(self->str.str, self->str.start++)) {
+ case ':':
+ hit_format_spec = 1;
+ count = 1;
+ break;
case '{':
/* the format spec needs to be recursively expanded.
this is an optimization, and not strictly needed */
- *format_spec_needs_expanding = 1;
+ if (hit_format_spec)
+ *format_spec_needs_expanding = 1;
count++;
break;
case '}':