change abstract size functions PySequence_Size &c.
add macros for backwards compatibility with C source
diff --git a/Include/abstract.h b/Include/abstract.h
index 6b96adf..d1a1db3 100644
--- a/Include/abstract.h
+++ b/Include/abstract.h
@@ -381,11 +381,13 @@
 	 equivalent to the Python expression: type(o).
        */
 
-     DL_IMPORT(int) PyObject_Length(PyObject *o);
+     DL_IMPORT(int) PyObject_Size(PyObject *o);
+
+#define PyObject_Length(O) PyObject_Size((O))
 
        /*
-         Return the length of object o.  If the object, o, provides
-	 both sequence and mapping protocols, the sequence length is
+         Return the size of object o.  If the object, o, provides
+	 both sequence and mapping protocols, the sequence size is
 	 returned. On error, -1 is returned.  This is the equivalent
 	 to the Python expression: len(o).
 
@@ -681,10 +683,12 @@
 
        */
 
-     DL_IMPORT(int) PySequence_Length(PyObject *o);
+     DL_IMPORT(int) PySequence_Size(PyObject *o);
+
+#define PySequence_Length(O) PySequence_Size((O))
 
        /*
-         Return the length of sequence object o, or -1 on failure.
+         Return the size of sequence object o, or -1 on failure.
 
        */
 
@@ -833,7 +837,9 @@
 	 This function always succeeds.
        */
 
-     DL_IMPORT(int) PyMapping_Length(PyObject *o);
+     DL_IMPORT(int) PyMapping_Size(PyObject *o);
+
+#define PyMapping_Length(O) PyMapping_Size((O))
 
        /*
          Returns the number of keys in object o on success, and -1 on
diff --git a/Objects/abstract.c b/Objects/abstract.c
index 5717815..2c7c307 100644
--- a/Objects/abstract.c
+++ b/Objects/abstract.c
@@ -62,7 +62,7 @@
 }
 
 int
-PyObject_Length(PyObject *o)
+PyObject_Size(PyObject *o)
 {
 	PySequenceMethods *m;
 
@@ -75,7 +75,7 @@
 	if (m && m->sq_length)
 		return m->sq_length(o);
 
-	return PyMapping_Length(o);
+	return PyMapping_Size(o);
 }
 
 PyObject *
@@ -803,7 +803,7 @@
 }
 
 int
-PySequence_Length(PyObject *s)
+PySequence_Size(PyObject *s)
 {
 	PySequenceMethods *m;
 
@@ -1036,7 +1036,7 @@
 	if (m && m->sq_item) {
 		int i;
 		PyObject *t;
-		int n = PySequence_Length(v);
+		int n = PySequence_Size(v);
 		if (n < 0)
 			return NULL;
 		t = PyTuple_New(n);
@@ -1087,7 +1087,7 @@
 	if (m && m->sq_item) {
 		int i;
 		PyObject *l;
-		int n = PySequence_Length(v);
+		int n = PySequence_Size(v);
 		if (n < 0)
 			return NULL;
 		l = PyList_New(n);
@@ -1152,7 +1152,7 @@
 		return -1;
 	}
 	
-	l = PySequence_Length(s);
+	l = PySequence_Size(s);
 	if (l < 0)
 		return -1;
 
@@ -1232,7 +1232,7 @@
 		return -1;
 	}
 	
-	l = PySequence_Length(s);
+	l = PySequence_Size(s);
 	if (l < 0)
 		return -1;
 
@@ -1261,7 +1261,7 @@
 }
 
 int
-PyMapping_Length(PyObject *o)
+PyMapping_Size(PyObject *o)
 {
 	PyMappingMethods *m;
 
diff --git a/Objects/object.c b/Objects/object.c
index 9194c90..0c50175 100644
--- a/Objects/object.c
+++ b/Objects/object.c
@@ -958,7 +958,7 @@
 
 
 /* Hack to force loading of abstract.o */
-int (*_Py_abstract_hack)(PyObject *) = &PyObject_Length;
+int (*_Py_abstract_hack)(PyObject *) = &PyObject_Size;
 
 
 /* Python's malloc wrappers (see mymalloc.h) */