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:
authorJoshua Leung <aligorith@gmail.com>2008-09-20 14:10:50 +0400
committerJoshua Leung <aligorith@gmail.com>2008-09-20 14:10:50 +0400
commitc282178411a07fbca859885bd3e674e186756695 (patch)
tree27b23a201a416d3be994ed281706ea227fda1636
parente7c62e903882947afce9dfea5beb1a2ed320cbe3 (diff)
Patch #17654: Fix for Scene.Get with input >20 chars
Patch by Darryl Pogue (paradox). Blender cuts off datablock names at 20 chars, which causes issues if you're trying to access Scenes with a string longer than 20 chars. Ex. s = 'GuildPub-Writers_GLOBAL' Blender.Scene.New(s) #This creates the scene "GuildPub-Writers_GLOB" Blender.Scene.Get(s) #This throws an error: the name and the string don't match This patch cuts down the input of Scene.Get() to the 20 char limits, thus making the the above example return the correct scene.
-rw-r--r--source/blender/python/api2_2x/Scene.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/source/blender/python/api2_2x/Scene.c b/source/blender/python/api2_2x/Scene.c
index eba951b8813..edb5e015eea 100644
--- a/source/blender/python/api2_2x/Scene.c
+++ b/source/blender/python/api2_2x/Scene.c
@@ -635,16 +635,19 @@ static PyObject *M_Scene_New( PyObject * self, PyObject * args,
/*-----------------------Scene.Get()------------------------------------*/
static PyObject *M_Scene_Get( PyObject * self, PyObject * args )
{
- char *name = NULL;
+ char *tname = NULL, name[22];
Scene *scene_iter;
- if( !PyArg_ParseTuple( args, "|s", &name ) )
+ if( !PyArg_ParseTuple( args, "|s", &tname ) )
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( name ) { /* (name) - Search scene by name */
+ if( tname ) { /* (name) - Search scene by name */
PyObject *wanted_scene = NULL;