summaryrefslogtreecommitdiffstats
path: root/Objects/stringlib
diff options
context:
space:
mode:
authorEric Smith <eric@trueblade.com>2009-05-06 13:08:15 (GMT)
committerEric Smith <eric@trueblade.com>2009-05-06 13:08:15 (GMT)
commit741191f17a921191355c1a67ca9f7fda08c3ae57 (patch)
tree2ead9e0086ce417631365543e133a789d9f75eeb /Objects/stringlib
parent5776c1623c1d14b8624547db5755fec8d60fc8ed (diff)
downloadcpython-741191f17a921191355c1a67ca9f7fda08c3ae57.zip
cpython-741191f17a921191355c1a67ca9f7fda08c3ae57.tar.gz
cpython-741191f17a921191355c1a67ca9f7fda08c3ae57.tar.bz2
Issue #3382. float 'F' formatting no longer maps to 'f'. This only affects nan and inf.
Diffstat (limited to 'Objects/stringlib')
-rw-r--r--Objects/stringlib/formatter.h19
1 files changed, 9 insertions, 10 deletions
diff --git a/Objects/stringlib/formatter.h b/Objects/stringlib/formatter.h
index 3b22181..ea15c7b 100644
--- a/Objects/stringlib/formatter.h
+++ b/Objects/stringlib/formatter.h
@@ -920,10 +920,6 @@ format_float_internal(PyObject *value,
format the result. We take care of that later. */
type = 'g';
- /* 'F' is the same as 'f', per the PEP */
- if (type == 'F')
- type = 'f';
-
val = PyFloat_AsDouble(value);
if (val == -1.0 && PyErr_Occurred())
goto done;
@@ -939,8 +935,15 @@ format_float_internal(PyObject *value,
#if PY_VERSION_HEX < 0x03010000
/* 3.1 no longer converts large 'f' to 'g'. */
- if ((type == 'f' || type == 'F') && fabs(val) >= 1e50)
- type = 'g';
+ if (fabs(val) >= 1e50)
+ switch (type) {
+ case 'f':
+ type = 'g';
+ break;
+ case 'F':
+ type = 'G';
+ break;
+ }
#endif
/* Cast "type", because if we're in unicode we need to pass a
@@ -1114,10 +1117,6 @@ format_complex_internal(PyObject *value,
format the result. We take care of that later. */
type = 'g';
- /* 'F' is the same as 'f', per the PEP */
- if (type == 'F')
- type = 'f';
-
if (precision < 0)
precision = default_precision;