All pastes #203839 Raw Edit

elubie

public text v1 · immutable
#203839 ·published 2006-10-15 13:18 UTC
rendered paste body
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 );
}