Issue #5988: Delete deprecated functions PyOS_ascii_formatd, PyOS_ascii_strtod, and PyOS_ascii_atof.

This commit is contained in:
Eric Smith 2010-02-22 14:58:30 +00:00
parent 9d2d327963
commit 68af50ba39
6 changed files with 17 additions and 171 deletions

View file

@ -58,7 +58,7 @@ _Py_parse_inf_or_nan(const char *p, char **endptr)
}
/**
* PyOS_ascii_strtod:
* _PyOS_ascii_strtod:
* @nptr: the string to convert to a numeric value.
* @endptr: if non-%NULL, it returns the character after
* the last character used in the conversion.
@ -88,7 +88,7 @@ _Py_parse_inf_or_nan(const char *p, char **endptr)
#ifndef PY_NO_SHORT_FLOAT_REPR
double
static double
_PyOS_ascii_strtod(const char *nptr, char **endptr)
{
double result;
@ -121,7 +121,7 @@ _PyOS_ascii_strtod(const char *nptr, char **endptr)
correctly rounded results.
*/
double
static double
_PyOS_ascii_strtod(const char *nptr, char **endptr)
{
char *fail_pos;
@ -270,48 +270,10 @@ _PyOS_ascii_strtod(const char *nptr, char **endptr)
#endif
/* PyOS_ascii_strtod is DEPRECATED in Python 3.1 */
double
PyOS_ascii_strtod(const char *nptr, char **endptr)
{
char *fail_pos;
const char *p;
double x;
if (PyErr_WarnEx(PyExc_DeprecationWarning,
"PyOS_ascii_strtod and PyOS_ascii_atof are "
"deprecated. Use PyOS_string_to_double "
"instead.", 1) < 0)
return -1.0;
/* _PyOS_ascii_strtod already does everything that we want,
except that it doesn't parse leading whitespace */
p = nptr;
while (Py_ISSPACE(*p))
p++;
x = _PyOS_ascii_strtod(p, &fail_pos);
if (fail_pos == p)
fail_pos = (char *)nptr;
if (endptr)
*endptr = (char *)fail_pos;
return x;
}
/* PyOS_ascii_strtod is DEPRECATED in Python 3.1 */
double
PyOS_ascii_atof(const char *nptr)
{
return PyOS_ascii_strtod(nptr, NULL);
}
/* PyOS_string_to_double is the recommended replacement for the deprecated
PyOS_ascii_strtod and PyOS_ascii_atof functions. It converts a
null-terminated byte string s (interpreted as a string of ASCII characters)
to a float. The string should not have leading or trailing whitespace (in
contrast, PyOS_ascii_strtod allows leading whitespace but not trailing
whitespace). The conversion is independent of the current locale.
/* PyOS_string_to_double converts a null-terminated byte string s (interpreted
as a string of ASCII characters) to a float. The string should not have
leading or trailing whitespace. The conversion is independent of the
current locale.
If endptr is NULL, try to convert the whole string. Raise ValueError and
return -1.0 if the string is not a valid representation of a floating-point
@ -369,6 +331,8 @@ PyOS_string_to_double(const char *s,
return result;
}
#ifdef PY_NO_SHORT_FLOAT_REPR
/* Given a string that may have a decimal point in the current
locale, change it back to a dot. Since the string cannot get
longer, no need for a maximum buffer size parameter. */
@ -618,12 +582,13 @@ ensure_decimal_point(char* buffer, size_t buf_size, int precision)
#define FLOAT_FORMATBUFLEN 120
/**
* PyOS_ascii_formatd:
* _PyOS_ascii_formatd:
* @buffer: A buffer to place the resulting string in
* @buf_size: The length of the buffer.
* @format: The printf()-style format to use for the
* code to use for converting.
* @d: The #gdouble to convert
* @precision: The precision to use when formatting.
*
* Converts a #gdouble to a string, using the '.' as
* decimal point. To format the number you pass in
@ -636,7 +601,7 @@ ensure_decimal_point(char* buffer, size_t buf_size, int precision)
* Return value: The pointer to the buffer with the converted string.
* On failure returns NULL but does not set any Python exception.
**/
char *
static char *
_PyOS_ascii_formatd(char *buffer,
size_t buf_size,
const char *format,
@ -716,22 +681,6 @@ _PyOS_ascii_formatd(char *buffer,
return buffer;
}
char *
PyOS_ascii_formatd(char *buffer,
size_t buf_size,
const char *format,
double d)
{
if (PyErr_WarnEx(PyExc_DeprecationWarning,
"PyOS_ascii_formatd is deprecated, "
"use PyOS_double_to_string instead", 1) < 0)
return NULL;
return _PyOS_ascii_formatd(buffer, buf_size, format, d, -1);
}
#ifdef PY_NO_SHORT_FLOAT_REPR
/* The fallback code to use if _Py_dg_dtoa is not available. */
PyAPI_FUNC(char *) PyOS_double_to_string(double val,