Mercurial > cpython-lru_cache-weakref
diff Objects/complexobject.c @ 32305:13656d58d450 legacy-trunk
Patch #774665: Make Python LC_NUMERIC agnostic.
| author | Martin v. Löwis <martin@v.loewis.de> |
|---|---|
| date | Tue, 08 Jun 2004 18:52:54 +0000 |
| parents | 3b59fa5d25b1 |
| children | 77d3642eb87b |
line wrap: on
line diff
--- a/Objects/complexobject.c Tue Jun 08 18:25:48 2004 +0000 +++ b/Objects/complexobject.c Tue Jun 08 18:52:54 2004 +0000 @@ -272,13 +272,19 @@ static void complex_to_buf(char *buf, int bufsz, PyComplexObject *v, int precision) { - if (v->cval.real == 0.) - PyOS_snprintf(buf, bufsz, "%.*gj", - precision, v->cval.imag); - else - PyOS_snprintf(buf, bufsz, "(%.*g%+.*gj)", - precision, v->cval.real, - precision, v->cval.imag); + char format[32]; + if (v->cval.real == 0.) { + PyOS_snprintf(format, 32, "%%.%ig", precision); + PyOS_ascii_formatd(buf, bufsz, format, v->cval.imag); + strncat(buf, "j", bufsz); + } else { + char re[64], im[64]; + + PyOS_snprintf(format, 32, "%%.%ig", precision); + PyOS_ascii_formatd(re, 64, format, v->cval.real); + PyOS_ascii_formatd(im, 64, format, v->cval.imag); + PyOS_snprintf(buf, bufsz, "(%s+%sj)", re, im); + } } static int @@ -662,7 +668,6 @@ static PyObject * complex_subtype_from_string(PyTypeObject *type, PyObject *v) { - extern double strtod(const char *, char **); const char *s, *start; char *end; double x=0.0, y=0.0, z; @@ -774,7 +779,7 @@ } errno = 0; PyFPE_START_PROTECT("strtod", return 0) - z = strtod(s, &end) ; + z = PyOS_ascii_strtod(s, &end) ; PyFPE_END_PROTECT(z) if (errno != 0) { PyOS_snprintf(buffer, sizeof(buffer),
