Skip to content

Commit eb85c66

Browse files
committed
SF bug #795506: Wrong handling of string format code for float values.
Added missing support for '%F' as had been documented.
1 parent c519f01 commit eb85c66

4 files changed

Lines changed: 10 additions & 0 deletions

File tree

Lib/test/string_tests.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -550,6 +550,7 @@ def test_formatting(self):
550550

551551
self.checkequal(' 42', '%3ld', '__mod__', 42)
552552
self.checkequal('0042.00', '%07.2f', '__mod__', 42)
553+
self.checkequal('0042.00', '%07.2F', '__mod__', 42)
553554

554555
self.checkraises(TypeError, 'abc', '__mod__')
555556
self.checkraises(TypeError, '%(foo)s', '__mod__', 42)

Misc/NEWS

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ What's New in Python 2.3.1?
1212
Core and builtins
1313
-----------------
1414

15+
- Bug #795506: The % formatting operator did not support '%F' as
16+
had been documented.
17+
1518
- Bug #775985: Only set stdout.encoding if a codec is available.
1619

1720
Extension modules

Objects/stringobject.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3921,8 +3921,11 @@ PyString_Format(PyObject *format, PyObject *args)
39213921
case 'e':
39223922
case 'E':
39233923
case 'f':
3924+
case 'F':
39243925
case 'g':
39253926
case 'G':
3927+
if (c == 'F')
3928+
c = 'f';
39263929
pbuf = formatbuf;
39273930
len = formatfloat(pbuf, sizeof(formatbuf),
39283931
flags, prec, c, v);

Objects/unicodeobject.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6540,8 +6540,11 @@ PyObject *PyUnicode_Format(PyObject *format,
65406540
case 'e':
65416541
case 'E':
65426542
case 'f':
6543+
case 'F':
65436544
case 'g':
65446545
case 'G':
6546+
if (c == 'F')
6547+
c = 'f';
65456548
pbuf = formatbuf;
65466549
len = formatfloat(pbuf, sizeof(formatbuf)/sizeof(Py_UNICODE),
65476550
flags, prec, c, v);

0 commit comments

Comments
 (0)