PyObject *M_Library_Open( PyObject * self, PyObject * args ) { char *fname = NULL; char filename[FILE_MAXDIR+FILE_MAXFILE]; char fname1[FILE_MAXDIR+FILE_MAXFILE]; int len = 0; if( !PyArg_ParseTuple( args, "s", &fname ) ) { return EXPP_ReturnPyObjError( PyExc_TypeError, "expected a .blend filename" ); } if( bpy_openlib ) { M_Library_Close( self ); Py_DECREF( Py_None ); /* incref'ed by above function */ } BLI_strncpy(fname1, fname, sizeof(fname)); BLI_convertstringcode(name1, G.sce, 0); /* G.sce = last file loaded, save for UI and restore after opening file */ BLI_strncpy(filename, G.sce, sizeof(filename)); bpy_openlib = BLO_blendhandle_from_file( fname1 ); BLI_strncpy(G.sce, filename, sizeof(filename)); if( !bpy_openlib ) return Py_BuildValue( "i", 0 ); len = strlen( fname ) + 1; /* +1 for terminating '\0' */ bpy_openlibname = MEM_mallocN( len, "bpy_openlibname" ); if( bpy_openlibname ) PyOS_snprintf( bpy_openlibname, len, "%s", fname ); return Py_BuildValue( "i", 1 ); }