]> granicus.if.org Git - python/commitdiff
Merged revisions 74222 via svnmerge from
authorEric Smith <eric@trueblade.com>
Mon, 27 Jul 2009 02:12:11 +0000 (02:12 +0000)
committerEric Smith <eric@trueblade.com>
Mon, 27 Jul 2009 02:12:11 +0000 (02:12 +0000)
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r74222 | eric.smith | 2009-07-26 22:10:42 -0400 (Sun, 26 Jul 2009) | 1 line

  Sync trunk and py3k versions of string formatting. Manual merge of r74219.
........

Objects/stringlib/formatter.h

index ea15c7bca8cd1cb2dcf1362583e7b008a9f91888..5cead660c4e2ecae18cca47f7366bf38d6f943ea 100644 (file)
@@ -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;