Mercurial > cpython-lru_cache-weakref
diff Objects/complexobject.c @ 66705:fd638ca74634
Removed static function complex_format, moved it into complex_repr. Modified tests to check both str and repr, which are the same for complex.
| author | Eric Smith <eric@trueblade.com> |
|---|---|
| date | Sat, 04 Dec 2010 13:27:34 +0000 |
| parents | 7b6af56ee74d |
| children | 3c9232a684ae |
line wrap: on
line diff
--- a/Objects/complexobject.c Sat Dec 04 13:14:29 2010 +0000 +++ b/Objects/complexobject.c Sat Dec 04 13:27:34 2010 +0000 @@ -324,10 +324,11 @@ op->ob_type->tp_free(op); } - static PyObject * -complex_format(PyComplexObject *v, int precision, char format_code) +complex_repr(PyComplexObject *v) { + int precision = 0; + char format_code = 'r'; PyObject *result = NULL; Py_ssize_t len; @@ -344,6 +345,8 @@ char *tail = ""; if (v->cval.real == 0. && copysign(1.0, v->cval.real)==1.0) { + /* Real part is +0: just output the imaginary part and do not + include parens. */ re = ""; im = PyOS_double_to_string(v->cval.imag, format_code, precision, 0, NULL); @@ -352,7 +355,8 @@ goto done; } } else { - /* Format imaginary part with sign, real part without */ + /* Format imaginary part with sign, real part without. Include + parens in the result. */ pre = PyOS_double_to_string(v->cval.real, format_code, precision, 0, NULL); if (!pre) { @@ -371,7 +375,7 @@ tail = ")"; } /* Alloc the final buffer. Add one for the "j" in the format string, - and one for the trailing zero. */ + and one for the trailing zero byte. */ len = strlen(lead) + strlen(re) + strlen(im) + strlen(tail) + 2; buf = PyMem_Malloc(len); if (!buf) { @@ -388,12 +392,6 @@ return result; } -static PyObject * -complex_repr(PyComplexObject *v) -{ - return complex_format(v, 0, 'r'); -} - static Py_hash_t complex_hash(PyComplexObject *v) {
