Ellipses -> Ellipsis rename (the dictionary really says that it should
be Ellipsis!). Bumped the API version because a linker-visible symbol is affected. Old C code will still compile -- there's a b/w compat macro. Similarly, old Python code will still run, builtin exports both Ellipses and Ellipsis.
This commit is contained in:
parent
8741b2b988
commit
e449af7da9
|
@ -52,8 +52,8 @@ extern PyObject *Py_BuildValue();
|
|||
extern int PyArg_VaParse Py_PROTO((PyObject *, char *, va_list));
|
||||
extern PyObject *Py_VaBuildValue Py_PROTO((char *, va_list));
|
||||
|
||||
#define PYTHON_API_VERSION 1005
|
||||
#define PYTHON_API_STRING "1005"
|
||||
#define PYTHON_API_VERSION 1006
|
||||
#define PYTHON_API_STRING "1006"
|
||||
/* The API version is maintained (independently from the Python version)
|
||||
so we can detect mismatches between the interpreter and dynamically
|
||||
loaded modules. These are diagnosticised by an error message but
|
||||
|
@ -67,6 +67,8 @@ extern PyObject *Py_VaBuildValue Py_PROTO((char *, va_list));
|
|||
Please add a line or two to the top of this log for each API
|
||||
version change:
|
||||
|
||||
11-Oct-1996 GvR renamed Py_Ellipses to Py_Ellipsis :-(
|
||||
|
||||
30-Jul-1996 GvR Slice and ellipses syntax added
|
||||
|
||||
23-Jul-1996 GvR For 1.4 -- better safe than sorry this time :-)
|
||||
|
|
|
@ -4,12 +4,12 @@
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* The unique ellipses object "..." */
|
||||
/* The unique ellipsis object "..." */
|
||||
|
||||
extern DL_IMPORT(PyObject) _Py_EllipsesObject; /* Don't use this directly */
|
||||
|
||||
#define Py_Ellipses (&_Py_EllipsesObject)
|
||||
extern DL_IMPORT(PyObject) _Py_EllipsisObject; /* Don't use this directly */
|
||||
|
||||
#define Py_Ellipsis (&_Py_EllipsisObject)
|
||||
#define Py_Ellipses Py_Ellipsis /* For bad spellers like me :-( */
|
||||
|
||||
/* Slice object interface */
|
||||
|
||||
|
|
|
@ -48,6 +48,6 @@ except TypeError:
|
|||
FrameType = type(sys.exc_traceback.tb_frame)
|
||||
|
||||
SliceType = type(slice(0))
|
||||
EllipsesType = type(Ellipses)
|
||||
EllipsisType = type(Ellipsis)
|
||||
|
||||
del sys, _f, _C, _x # Not for export
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
/*
|
||||
Written by Jim Hugunin and Chris Chase.
|
||||
|
||||
This includes both the singular ellipses object and slice objects.
|
||||
This includes both the singular ellipsis object and slice objects.
|
||||
|
||||
Guido, feel free to do whatever you want in the way of copyrights
|
||||
for this file.
|
||||
*/
|
||||
|
||||
/*
|
||||
Py_Ellipses encodes the '...' rubber index token. It is similar to
|
||||
Py_Ellipsis encodes the '...' rubber index token. It is similar to
|
||||
the Py_NoneStruct in that there is no way to create other objects of
|
||||
this type and there is exactly one in existence.
|
||||
*/
|
||||
|
@ -16,16 +16,16 @@ this type and there is exactly one in existence.
|
|||
#include "Python.h"
|
||||
|
||||
static PyObject *
|
||||
ellipses_repr(op)
|
||||
ellipsis_repr(op)
|
||||
PyObject *op;
|
||||
{
|
||||
return PyString_FromString("Ellipses");
|
||||
return PyString_FromString("Ellipsis");
|
||||
}
|
||||
|
||||
static PyTypeObject PyEllipses_Type = {
|
||||
static PyTypeObject PyEllipsis_Type = {
|
||||
PyObject_HEAD_INIT(&PyType_Type)
|
||||
0,
|
||||
"ellipses",
|
||||
"ellipsis",
|
||||
0,
|
||||
0,
|
||||
0, /*tp_dealloc*/ /*never called*/
|
||||
|
@ -33,15 +33,15 @@ static PyTypeObject PyEllipses_Type = {
|
|||
0, /*tp_getattr*/
|
||||
0, /*tp_setattr*/
|
||||
0, /*tp_compare*/
|
||||
(reprfunc)ellipses_repr, /*tp_repr*/
|
||||
(reprfunc)ellipsis_repr, /*tp_repr*/
|
||||
0, /*tp_as_number*/
|
||||
0, /*tp_as_sequence*/
|
||||
0, /*tp_as_mapping*/
|
||||
0, /*tp_hash */
|
||||
};
|
||||
|
||||
PyObject _Py_EllipsesObject = {
|
||||
PyObject_HEAD_INIT(&PyEllipses_Type)
|
||||
PyObject _Py_EllipsisObject = {
|
||||
PyObject_HEAD_INIT(&PyEllipsis_Type)
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -1632,7 +1632,9 @@ initbuiltin()
|
|||
INCREF(builtin_dict);
|
||||
initerrors();
|
||||
(void) dictinsert(builtin_dict, "None", None);
|
||||
(void) dictinsert(builtin_dict, "Ellipses", Py_Ellipses);
|
||||
(void) dictinsert(builtin_dict, "Ellipsis", Py_Ellipsis);
|
||||
/* And once more for bad spellers like me :-( */
|
||||
(void) dictinsert(builtin_dict, "Ellipses", Py_Ellipsis);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1032,7 +1032,7 @@ com_subscript(c, n)
|
|||
ch = CHILD(n,0);
|
||||
/* check for rubber index */
|
||||
if (TYPE(ch) == DOT && TYPE(CHILD(n,1)) == DOT)
|
||||
com_addoparg(c, LOAD_CONST, com_addconst(c, Py_Ellipses));
|
||||
com_addoparg(c, LOAD_CONST, com_addconst(c, Py_Ellipsis));
|
||||
else {
|
||||
/* check for slice */
|
||||
if ((TYPE(ch) == COLON || NCH(n) > 1))
|
||||
|
|
|
@ -37,7 +37,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|||
|
||||
#define TYPE_NULL '0'
|
||||
#define TYPE_NONE 'N'
|
||||
#define TYPE_ELLIPSES '.'
|
||||
#define TYPE_ELLIPSIS '.'
|
||||
#define TYPE_INT 'i'
|
||||
#define TYPE_FLOAT 'f'
|
||||
#define TYPE_COMPLEX 'x'
|
||||
|
@ -130,8 +130,8 @@ w_object(v, p)
|
|||
w_byte(TYPE_NULL, p);
|
||||
else if (v == None)
|
||||
w_byte(TYPE_NONE, p);
|
||||
else if (v == Py_Ellipses)
|
||||
w_byte(TYPE_ELLIPSES, p);
|
||||
else if (v == Py_Ellipsis)
|
||||
w_byte(TYPE_ELLIPSIS, p);
|
||||
else if (is_intobject(v)) {
|
||||
w_byte(TYPE_INT, p);
|
||||
w_long(getintvalue(v), p);
|
||||
|
@ -325,9 +325,9 @@ r_object(p)
|
|||
INCREF(None);
|
||||
return None;
|
||||
|
||||
case TYPE_ELLIPSES:
|
||||
INCREF(Py_Ellipses);
|
||||
return Py_Ellipses;
|
||||
case TYPE_ELLIPSIS:
|
||||
INCREF(Py_Ellipsis);
|
||||
return Py_Ellipsis;
|
||||
|
||||
case TYPE_INT:
|
||||
return newintobject(r_long(p));
|
||||
|
|
Loading…
Reference in New Issue