diff --git a/Doc/api/concrete.tex b/Doc/api/concrete.tex index e2d3e52f534..630a7261160 100644 --- a/Doc/api/concrete.tex +++ b/Doc/api/concrete.tex @@ -430,10 +430,9 @@ booleans. The following macros are available, however. \versionadded{2.2} \end{cfuncdesc} -\begin{cfuncdesc}{PyObject*}{PyFloat_FromString}{PyObject *str, char **pend} +\begin{cfuncdesc}{PyObject*}{PyFloat_FromString}{PyObject *str} Create a \ctype{PyFloatObject} object based on the string value in - \var{str}, or \NULL{} on failure. The \var{pend} argument is ignored. It - remains only for backward compatibility. + \var{str}, or \NULL{} on failure. \end{cfuncdesc} \begin{cfuncdesc}{PyObject*}{PyFloat_FromDouble}{double v} diff --git a/Doc/api/refcounts.dat b/Doc/api/refcounts.dat index 019bfd4ef83..54197c804d7 100644 --- a/Doc/api/refcounts.dat +++ b/Doc/api/refcounts.dat @@ -385,7 +385,6 @@ PyFloat_FromDouble:double:v:: PyFloat_FromString:PyObject*::+1: PyFloat_FromString:PyObject*:str:0: -PyFloat_FromString:char**:pend:0:ignored PyFrozenSet_New:PyObject*::+1: PyFrozenSet_New:PyObject*:iterable:0: diff --git a/Include/floatobject.h b/Include/floatobject.h index c3c18afcd73..b535e34f34d 100644 --- a/Include/floatobject.h +++ b/Include/floatobject.h @@ -21,10 +21,8 @@ PyAPI_DATA(PyTypeObject) PyFloat_Type; #define PyFloat_Check(op) PyObject_TypeCheck(op, &PyFloat_Type) #define PyFloat_CheckExact(op) ((op)->ob_type == &PyFloat_Type) -/* Return Python float from string PyObject. Second argument ignored on - input, and, if non-NULL, NULL is stored into *junk (this tried to serve a - purpose once but can't be made to work as intended). */ -PyAPI_FUNC(PyObject *) PyFloat_FromString(PyObject*, char** junk); +/* Return Python float from string PyObject. */ +PyAPI_FUNC(PyObject *) PyFloat_FromString(PyObject*); /* Return Python float from C double. */ PyAPI_FUNC(PyObject *) PyFloat_FromDouble(double); diff --git a/Misc/NEWS b/Misc/NEWS index 7791a459c55..e7ac139ceb5 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -28,6 +28,9 @@ TO DO Core and Builtins ----------------- +- The long-deprecated argument "pend" of PyFloat_FromString() has been + removed. + - The dir() function has been extended to call the __dir__() method on its argument, if it exists. If not, it will work like before. This allows customizing the output of dir() in the presence of a __getattr__(). diff --git a/Objects/abstract.c b/Objects/abstract.c index a301287b195..5a34b960e05 100644 --- a/Objects/abstract.c +++ b/Objects/abstract.c @@ -968,7 +968,7 @@ PyNumber_Float(PyObject *o) PyFloatObject *po = (PyFloatObject *)o; return PyFloat_FromDouble(po->ob_fval); } - return PyFloat_FromString(o, NULL); + return PyFloat_FromString(o); } /* Operations on sequences */ diff --git a/Objects/floatobject.c b/Objects/floatobject.c index 514dd39cd1a..9e6db549eda 100644 --- a/Objects/floatobject.c +++ b/Objects/floatobject.c @@ -62,24 +62,8 @@ PyFloat_FromDouble(double fval) return (PyObject *) op; } -/************************************************************************** -RED_FLAG 22-Sep-2000 tim -PyFloat_FromString's pend argument is braindead. Prior to this RED_FLAG, - -1. If v was a regular string, *pend was set to point to its terminating - null byte. That's useless (the caller can find that without any - help from this function!). - -2. If v was a Unicode string, or an object convertible to a character - buffer, *pend was set to point into stack trash (the auto temp - vector holding the character buffer). That was downright dangerous. - -Since we can't change the interface of a public API function, pend is -still supported but now *officially* useless: if pend is not NULL, -*pend is set to NULL. -**************************************************************************/ PyObject * -PyFloat_FromString(PyObject *v, char **pend) +PyFloat_FromString(PyObject *v) { const char *s, *last, *end; double x; @@ -89,8 +73,6 @@ PyFloat_FromString(PyObject *v, char **pend) #endif Py_ssize_t len; - if (pend) - *pend = NULL; if (PyString_Check(v)) { s = PyString_AS_STRING(v); len = PyString_GET_SIZE(v); @@ -852,7 +834,7 @@ float_new(PyTypeObject *type, PyObject *args, PyObject *kwds) if (!PyArg_ParseTupleAndKeywords(args, kwds, "|O:float", kwlist, &x)) return NULL; if (PyString_Check(x)) - return PyFloat_FromString(x, NULL); + return PyFloat_FromString(x); return PyNumber_Float(x); }