[Python-checkins] python/dist/src/Objects complexobject.c, 2.70,
2.71 floatobject.c, 2.130, 2.131 stringobject.c, 2.217, 2.218
loewis at users.sourceforge.net
loewis at users.sourceforge.net
Tue Jun 8 14:52:59 EDT 2004
Update of /cvsroot/python/python/dist/src/Objects
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26461/Objects
Modified Files:
complexobject.c floatobject.c stringobject.c
Log Message:
Patch #774665: Make Python LC_NUMERIC agnostic.
Index: complexobject.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/complexobject.c,v
retrieving revision 2.70
retrieving revision 2.71
diff -C2 -d -r2.70 -r2.71
*** complexobject.c 12 Oct 2003 19:09:37 -0000 2.70
--- complexobject.c 8 Jun 2004 18:52:53 -0000 2.71
***************
*** 273,283 ****
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);
}
--- 273,289 ----
complex_to_buf(char *buf, int bufsz, PyComplexObject *v, int precision)
{
! 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);
! }
}
***************
*** 663,667 ****
complex_subtype_from_string(PyTypeObject *type, PyObject *v)
{
- extern double strtod(const char *, char **);
const char *s, *start;
char *end;
--- 669,672 ----
***************
*** 775,779 ****
errno = 0;
PyFPE_START_PROTECT("strtod", return 0)
! z = strtod(s, &end) ;
PyFPE_END_PROTECT(z)
if (errno != 0) {
--- 780,784 ----
errno = 0;
PyFPE_START_PROTECT("strtod", return 0)
! z = PyOS_ascii_strtod(s, &end) ;
PyFPE_END_PROTECT(z)
if (errno != 0) {
Index: floatobject.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/floatobject.c,v
retrieving revision 2.130
retrieving revision 2.131
diff -C2 -d -r2.130 -r2.131
*** floatobject.c 26 May 2004 17:36:12 -0000 2.130
--- floatobject.c 8 Jun 2004 18:52:53 -0000 2.131
***************
*** 133,137 ****
*/
PyFPE_START_PROTECT("strtod", return NULL)
! x = strtod(s, (char **)&end);
PyFPE_END_PROTECT(x)
errno = 0;
--- 133,137 ----
*/
PyFPE_START_PROTECT("strtod", return NULL)
! x = PyOS_ascii_strtod(s, (char **)&end);
PyFPE_END_PROTECT(x)
errno = 0;
***************
*** 165,169 ****
about denorms. */
PyFPE_START_PROTECT("atof", return NULL)
! x = atof(s);
PyFPE_END_PROTECT(x)
errno = 0; /* whether atof ever set errno is undefined */
--- 165,169 ----
about denorms. */
PyFPE_START_PROTECT("atof", return NULL)
! x = PyOS_ascii_atof(s);
PyFPE_END_PROTECT(x)
errno = 0; /* whether atof ever set errno is undefined */
***************
*** 224,227 ****
--- 224,228 ----
{
register char *cp;
+ char format[32];
/* Subroutine for float_repr and float_print.
We want float numbers to be recognizable as such,
***************
*** 231,235 ****
assert(PyFloat_Check(v));
! PyOS_snprintf(buf, buflen, "%.*g", precision, v->ob_fval);
cp = buf;
if (*cp == '-')
--- 232,237 ----
assert(PyFloat_Check(v));
! PyOS_snprintf(format, 32, "%%.%ig", precision);
! PyOS_ascii_formatd(buf, buflen, format, v->ob_fval);
cp = buf;
if (*cp == '-')
Index: stringobject.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/stringobject.c,v
retrieving revision 2.217
retrieving revision 2.218
diff -C2 -d -r2.217 -r2.218
*** stringobject.c 5 Jan 2004 00:29:51 -0000 2.217
--- stringobject.c 8 Jun 2004 18:52:54 -0000 2.218
***************
*** 3583,3587 ****
(flags&F_ALT) ? "#" : "",
prec, type);
! PyOS_snprintf(buf, buflen, fmt, x);
return strlen(buf);
}
--- 3583,3587 ----
(flags&F_ALT) ? "#" : "",
prec, type);
! PyOS_ascii_formatd(buf, buflen, fmt, x);
return strlen(buf);
}
More information about the Python-checkins
mailing list