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

This commit is contained in:
Eric Smith 2009-07-27 02:10:42 +00:00
parent 34f7e32350
commit 88af7432fc
1 changed files with 16 additions and 9 deletions

View File

@ -920,6 +920,13 @@ format_float_internal(PyObject *value,
format the result. We take care of that later. */ format the result. We take care of that later. */
type = 'g'; 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); val = PyFloat_AsDouble(value);
if (val == -1.0 && PyErr_Occurred()) if (val == -1.0 && PyErr_Occurred())
goto done; goto done;
@ -935,15 +942,8 @@ format_float_internal(PyObject *value,
#if PY_VERSION_HEX < 0x03010000 #if PY_VERSION_HEX < 0x03010000
/* 3.1 no longer converts large 'f' to 'g'. */ /* 3.1 no longer converts large 'f' to 'g'. */
if (fabs(val) >= 1e50) if ((type == 'f' || type == 'F') && fabs(val) >= 1e50)
switch (type) { type = 'g';
case 'f':
type = 'g';
break;
case 'F':
type = 'G';
break;
}
#endif #endif
/* Cast "type", because if we're in unicode we need to pass a /* 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. */ format the result. We take care of that later. */
type = 'g'; 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) if (precision < 0)
precision = default_precision; precision = default_precision;