diff --git a/source/blender/python/api2_2x/euler.c b/source/blender/python/api2_2x/euler.c index 8816c286943..53489e0f737 100644 --- a/source/blender/python/api2_2x/euler.c +++ b/source/blender/python/api2_2x/euler.c @@ -347,6 +347,7 @@ static PyObject *Euler_slice(EulerObject * self, int begin, int end) int count; CLAMP(begin, 0, 3); + if (end<0) end= 4+end; CLAMP(end, 0, 3); begin = MIN2(begin,end); @@ -368,6 +369,7 @@ static int Euler_ass_slice(EulerObject * self, int begin, int end, PyObject *e, *f; CLAMP(begin, 0, 3); + if (end<0) end= 4+end; CLAMP(end, 0, 3); begin = MIN2(begin,end); diff --git a/source/blender/python/api2_2x/quat.c b/source/blender/python/api2_2x/quat.c index 09b7ef5fe3c..3793db47686 100644 --- a/source/blender/python/api2_2x/quat.c +++ b/source/blender/python/api2_2x/quat.c @@ -350,6 +350,7 @@ static PyObject *Quaternion_slice(QuaternionObject * self, int begin, int end) int count; CLAMP(begin, 0, 4); + if (end<0) end= 5+end; CLAMP(end, 0, 4); begin = MIN2(begin,end); @@ -371,6 +372,7 @@ static int Quaternion_ass_slice(QuaternionObject * self, int begin, int end, PyObject *q, *f; CLAMP(begin, 0, 4); + if (end<0) end= 5+end; CLAMP(end, 0, 4); begin = MIN2(begin,end); diff --git a/source/blender/python/api2_2x/vector.c b/source/blender/python/api2_2x/vector.c index 64ff035fa1f..2e13122f09f 100644 --- a/source/blender/python/api2_2x/vector.c +++ b/source/blender/python/api2_2x/vector.c @@ -359,6 +359,7 @@ static PyObject *Vector_slice(VectorObject * self, int begin, int end) int count; CLAMP(begin, 0, self->size); + if (end<0) end= self->size+end+1; CLAMP(end, 0, self->size); begin = MIN2(begin,end); @@ -380,6 +381,7 @@ static int Vector_ass_slice(VectorObject * self, int begin, int end, PyObject *v; CLAMP(begin, 0, self->size); + if (end<0) end= self->size+end+1; CLAMP(end, 0, self->size); begin = MIN2(begin,end);