diff options
-rw-r--r-- | Lib/test/string_tests.py | 1 | ||||
-rw-r--r-- | Misc/NEWS | 3 | ||||
-rw-r--r-- | Objects/stringobject.c | 3 | ||||
-rw-r--r-- | Objects/unicodeobject.c | 3 |
4 files changed, 10 insertions, 0 deletions
diff --git a/Lib/test/string_tests.py b/Lib/test/string_tests.py index 7c98a3b..af171d0 100644 --- a/Lib/test/string_tests.py +++ b/Lib/test/string_tests.py @@ -550,6 +550,7 @@ class MixinStrUnicodeUserStringTest: self.checkequal(' 42', '%3ld', '__mod__', 42) self.checkequal('0042.00', '%07.2f', '__mod__', 42) + self.checkequal('0042.00', '%07.2F', '__mod__', 42) self.checkraises(TypeError, 'abc', '__mod__') self.checkraises(TypeError, '%(foo)s', '__mod__', 42) @@ -12,6 +12,9 @@ What's New in Python 2.4 alpha 1? Core and builtins ----------------- +- The % formatting operator now supports '%F' which is equivalent to + '%f'. This has always been documented but never implemented. + - complex(obj) could leak a little memory if obj wasn't a string or number. diff --git a/Objects/stringobject.c b/Objects/stringobject.c index 31aeaa7..04c9c98 100644 --- a/Objects/stringobject.c +++ b/Objects/stringobject.c @@ -3921,8 +3921,11 @@ PyString_Format(PyObject *format, PyObject *args) case 'e': case 'E': case 'f': + case 'F': case 'g': case 'G': + if (c == 'F') + c = 'f'; pbuf = formatbuf; len = formatfloat(pbuf, sizeof(formatbuf), flags, prec, c, v); diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index 163976e..7ba9547 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -6540,8 +6540,11 @@ PyObject *PyUnicode_Format(PyObject *format, case 'e': case 'E': case 'f': + case 'F': case 'g': case 'G': + if (c == 'F') + c = 'f'; pbuf = formatbuf; len = formatfloat(pbuf, sizeof(formatbuf)/sizeof(Py_UNICODE), flags, prec, c, v); |