diff options
author | Eric Smith <eric@trueblade.com> | 2009-07-27 02:10:42 (GMT) |
---|---|---|
committer | Eric Smith <eric@trueblade.com> | 2009-07-27 02:10:42 (GMT) |
commit | 88af7432fc888bd1f3bb8fb68b1be243dcaae8ca (patch) | |
tree | e0107d8a921d6528191af8c6c2a052f9c01e5006 /Objects/stringlib/formatter.h | |
parent | 34f7e32350a3c38babed03743b8c5ecb36c505a1 (diff) | |
download | cpython-88af7432fc888bd1f3bb8fb68b1be243dcaae8ca.zip cpython-88af7432fc888bd1f3bb8fb68b1be243dcaae8ca.tar.gz cpython-88af7432fc888bd1f3bb8fb68b1be243dcaae8ca.tar.bz2 |
Sync trunk and py3k versions of string formatting. Manual merge of r74219.
Diffstat (limited to 'Objects/stringlib/formatter.h')
-rw-r--r-- | Objects/stringlib/formatter.h | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/Objects/stringlib/formatter.h b/Objects/stringlib/formatter.h index ea15c7b..5cead66 100644 --- a/Objects/stringlib/formatter.h +++ b/Objects/stringlib/formatter.h @@ -920,6 +920,13 @@ format_float_internal(PyObject *value, format the result. We take care of that later. */ type = 'g'; +#if PY_VERSION_HEX < 0x0301000 + /* 'F' is the same as 'f', per the PEP */ + /* This is no longer the case in 3.x */ + if (type == 'F') + type = 'f'; +#endif + val = PyFloat_AsDouble(value); if (val == -1.0 && PyErr_Occurred()) goto done; @@ -935,15 +942,8 @@ format_float_internal(PyObject *value, #if PY_VERSION_HEX < 0x03010000 /* 3.1 no longer converts large 'f' to 'g'. */ - if (fabs(val) >= 1e50) - switch (type) { - case 'f': - type = 'g'; - break; - case 'F': - type = 'G'; - break; - } + if ((type == 'f' || type == 'F') && fabs(val) >= 1e50) + type = 'g'; #endif /* Cast "type", because if we're in unicode we need to pass a @@ -1117,6 +1117,13 @@ format_complex_internal(PyObject *value, format the result. We take care of that later. */ type = 'g'; +#if PY_VERSION_HEX < 0x03010000 + /* This is no longer the case in 3.x */ + /* 'F' is the same as 'f', per the PEP */ + if (type == 'F') + type = 'f'; +#endif + if (precision < 0) precision = default_precision; |