diff Objects/stringobject.c @ 53442:6947bc3dd433 legacy-trunk

Issue #5835, deprecate PyOS_ascii_formatd. If anyone wants to clean up the documentation, feel free. It's my first documentation foray, and it's not that great. Will port to py3k with a different strategy.
author Eric Smith <eric@trueblade.com>
date Sat, 25 Apr 2009 21:40:15 +0000
parents 1afb365f2448
children 606e97caeb77
line wrap: on
line diff
--- a/Objects/stringobject.c	Sat Apr 25 21:16:05 2009 +0000
+++ b/Objects/stringobject.c	Sat Apr 25 21:40:15 2009 +0000
@@ -4332,9 +4332,6 @@
 formatfloat(char *buf, size_t buflen, int flags,
             int prec, int type, PyObject *v)
 {
-	/* fmt = '%#.' + `prec` + `type`
-	   worst case length = 3 + 10 (len of INT_MAX) + 1 = 14 (use 20)*/
-	char fmt[20];
 	double x;
 	x = PyFloat_AsDouble(v);
 	if (x == -1.0 && PyErr_Occurred()) {
@@ -4378,10 +4375,8 @@
 			"formatted float is too long (precision too large?)");
 		return -1;
 	}
-	PyOS_snprintf(fmt, sizeof(fmt), "%%%s.%d%c",
-		      (flags&F_ALT) ? "#" : "",
-		      prec, type);
-	PyOS_ascii_formatd(buf, buflen, fmt, x);
+	_PyOS_double_to_string(buf, buflen, x, type, prec,
+                            (flags&F_ALT)?Py_DTSF_ALT:0, NULL);
 	return (int)strlen(buf);
 }