[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [15080] trunk/blender/source: functionality fix

Campbell Barton ideasman42 at gmail.com
Sun Jun 1 18:13:05 CEST 2008


Revision: 15080
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15080
Author:   campbellbarton
Date:     2008-06-01 18:13:04 +0200 (Sun, 01 Jun 2008)

Log Message:
-----------
functionality fix
Originally the only way to run scripts automatically was with scriptlinks, which could be disabled for loading untrusted blend files.
Since then PyDrivers and PyConstraints would run even when G.f&G_DOSCRIPTLINKS was disabled.
Gensher, Theeth and Ianwill agree its acceptable to reuse the flag for other areas python runs automatically.

PyNodes still have no way to be disabled, (todo before 2.46a)

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/constraint.c
    trunk/blender/source/blender/python/BPY_interface.c
    trunk/blender/source/creator/creator.c

Modified: trunk/blender/source/blender/blenkernel/intern/constraint.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/constraint.c	2008-06-01 15:38:46 UTC (rev 15079)
+++ trunk/blender/source/blender/blenkernel/intern/constraint.c	2008-06-01 16:13:04 UTC (rev 15080)
@@ -1882,7 +1882,7 @@
 {
 	bPythonConstraint *data= con->data;
 	
-	if (VALID_CONS_TARGET(ct)) {
+	if ((G.f & G_DOSCRIPTLINKS) && VALID_CONS_TARGET(ct)) {
 		/* special exception for curves - depsgraph issues */
 		if (ct->tar->type == OB_CURVE) {
 			Curve *cu= ct->tar->data;
@@ -1906,6 +1906,8 @@
 {
 	bPythonConstraint *data= con->data;
 	
+	if ((G.f & G_DOSCRIPTLINKS)==0)  return;
+	
 /* currently removed, until I this can be re-implemented for multiple targets */
 #if 0
 	/* Firstly, run the 'driver' function which has direct access to the objects involved 

Modified: trunk/blender/source/blender/python/BPY_interface.c
===================================================================
--- trunk/blender/source/blender/python/BPY_interface.c	2008-06-01 15:38:46 UTC (rev 15079)
+++ trunk/blender/source/blender/python/BPY_interface.c	2008-06-01 16:13:04 UTC (rev 15080)
@@ -1222,7 +1222,7 @@
 {
 	PyObject *d, *mod;
 
-	if (bpy_pydriver_Dict) return -1;
+	if (bpy_pydriver_Dict || (G.f&G_DOSCRIPTLINKS)==0) return -1;
 
 	d = PyDict_New();
 	if (!d) return -1;
@@ -1998,7 +1998,7 @@
 	int setitem_retval;
 	PyGILState_STATE gilstate;
 
-	if (!driver) return result;
+	if (!driver || 	(G.f&G_DOSCRIPTLINKS)==0) return result;
 
 	expr = driver->name; /* the py expression to be evaluated */
 	if (!expr || expr[0]=='\0') return result;

Modified: trunk/blender/source/creator/creator.c
===================================================================
--- trunk/blender/source/creator/creator.c	2008-06-01 15:38:46 UTC (rev 15079)
+++ trunk/blender/source/creator/creator.c	2008-06-01 16:13:04 UTC (rev 15080)
@@ -219,7 +219,7 @@
 	printf ("  -d\t\tTurn debugging on\n");
 	printf ("  -noaudio\tDisable audio on systems that support audio\n");
 	printf ("  -h\t\tPrint this help text\n");
-	printf ("  -y\t\tDisable script links, use -Y to find out why its -y\n");
+	printf ("  -y\t\tDisable automatic python script execution (scriptlinks, pydrivers, pyconstraints, pynodes)\n");
 	printf ("  -P <filename>\tRun the given Python script (filename or Blender Text)\n");
 #ifdef WIN32
 	printf ("  -R\t\tRegister .blend extension\n");





More information about the Bf-blender-cvs mailing list