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

Reply via email to