Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2008-09-20 15:54:27 +0400
committerCampbell Barton <ideasman42@gmail.com>2008-09-20 15:54:27 +0400
commit3dbdd8939b418d39f42b6cc0b4fab38083b393cd (patch)
treee644bf00299b7440ac4273d11be3162f142b2d3d
parentf510057fefea61a15fbbbd6556bf00a6350bb519 (diff)
16624 was incorrect. Blender wont always give the requested name for new datablocks or for renaming. scripts need to account for this.
-rw-r--r--source/blender/python/api2_2x/Scene.c30
1 files changed, 10 insertions, 20 deletions
diff --git a/source/blender/python/api2_2x/Scene.c b/source/blender/python/api2_2x/Scene.c
index edb5e015eea..662656663c1 100644
--- a/source/blender/python/api2_2x/Scene.c
+++ b/source/blender/python/api2_2x/Scene.c
@@ -635,29 +635,24 @@ static PyObject *M_Scene_New( PyObject * self, PyObject * args,
/*-----------------------Scene.Get()------------------------------------*/
static PyObject *M_Scene_Get( PyObject * self, PyObject * args )
{
- char *tname = NULL, name[22];
+ char *name = NULL;
Scene *scene_iter;
- if( !PyArg_ParseTuple( args, "|s", &tname ) )
+ if( !PyArg_ParseTuple( args, "|s", &name ) )
return ( EXPP_ReturnPyObjError( PyExc_TypeError,
"expected string argument (or nothing)" ) );
-
- strncpy(name, tname, 21);
- if( strlen(tname) >= 21 ) name[21]= 0;
scene_iter = G.main->scene.first;
- if( tname ) { /* (name) - Search scene by name */
+ if( name ) { /* (name) - Search scene by name */
PyObject *wanted_scene = NULL;
- while( ( scene_iter ) && ( wanted_scene == NULL ) ) {
-
- if( strcmp( name, scene_iter->id.name + 2 ) == 0 )
- wanted_scene =
- Scene_CreatePyObject( scene_iter );
-
- scene_iter = scene_iter->id.next;
+ for(;scene_iter; scene_iter = scene_iter->id.next) {
+ if( strcmp( name, scene_iter->id.name + 2 ) == 0 ) {
+ wanted_scene = Scene_CreatePyObject( scene_iter );
+ break;
+ }
}
if( wanted_scene == NULL ) { /* Requested scene doesn't exist */
@@ -681,19 +676,14 @@ static PyObject *M_Scene_Get( PyObject * self, PyObject * args )
return ( EXPP_ReturnPyObjError( PyExc_MemoryError,
"couldn't create PyList" ) );
- while( scene_iter ) {
+ for(; scene_iter; scene_iter = scene_iter->id.next, index++) {
pyobj = Scene_CreatePyObject( scene_iter );
if( !pyobj ) {
Py_DECREF(sce_pylist);
- return ( EXPP_ReturnPyObjError
- ( PyExc_MemoryError,
- "couldn't create PyString" ) );
+ return NULL; /* Scene_CreatePyObject sets an error */
}
PyList_SET_ITEM( sce_pylist, index, pyobj );
-
- scene_iter = scene_iter->id.next;
- index++;
}
return sce_pylist;