Revision: 16629 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=16629 Author: campbellbarton Date: 2008-09-20 13:54:27 +0200 (Sat, 20 Sep 2008)
Log Message: ----------- 16624 was incorrect. Blender wont always give the requested name for new datablocks or for renaming. scripts need to account for this. Modified Paths: -------------- trunk/blender/source/blender/python/api2_2x/Scene.c Modified: trunk/blender/source/blender/python/api2_2x/Scene.c =================================================================== --- trunk/blender/source/blender/python/api2_2x/Scene.c 2008-09-20 11:08:35 UTC (rev 16628) +++ trunk/blender/source/blender/python/api2_2x/Scene.c 2008-09-20 11:54:27 UTC (rev 16629) @@ -635,29 +635,24 @@ /*-----------------------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 @@ 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; _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs