diff --git a/source/blender/python/api2_2x/Curve.c b/source/blender/python/api2_2x/Curve.c index 38ae90746fe..5c4d671e8af 100644 --- a/source/blender/python/api2_2x/Curve.c +++ b/source/blender/python/api2_2x/Curve.c @@ -143,6 +143,14 @@ PyObject *Curve_Init (void) return (submodule); } +int Curve_CheckPyObject (PyObject *pyobj) +{ + return (pyobj->ob_type == &Curve_Type); +} +Curve *Curve_FromPyObject (PyObject *pyobj) +{ + return ((BPy_Curve *)pyobj)->curve; +} /*****************************************************************************/ /* Python BPy_Curve methods: */ /* gives access to */ diff --git a/source/blender/python/api2_2x/Object.c b/source/blender/python/api2_2x/Object.c index ec5fd12b770..718bed0a2dd 100644 --- a/source/blender/python/api2_2x/Object.c +++ b/source/blender/python/api2_2x/Object.c @@ -828,6 +828,8 @@ static PyObject *Object_link (BPy_Object *self, PyObject *args) data = (void *)Camera_FromPyObject (py_data); if (Lamp_CheckPyObject (py_data)) data = (void *)Lamp_FromPyObject (py_data); + if (Curve_CheckPyObject (py_data)) + data = (void *)Curve_FromPyObject (py_data); /* TODO: add the (N)Mesh check and from functions here when finished. */ oldid = (ID*) self->object->data; @@ -857,6 +859,13 @@ static PyObject *Object_link (BPy_Object *self, PyObject *args) "The 'link' object is incompatible with the base object")); } break; + case ID_CU: + if (self->object->type != OB_CURVE) + { + return (PythonReturnErrorObject (PyExc_AttributeError, + "The 'link' object is incompatible with the base object")); + } + break; default: return (PythonReturnErrorObject (PyExc_AttributeError, "Linking this object type is not supported"));