[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [56249] trunk/blender/source/blender: fix [#34958] keyframe many items would fail if there was a (") in the text.

Campbell Barton ideasman42 at gmail.com
Tue Apr 23 22:10:28 CEST 2013


Revision: 56249
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56249
Author:   campbellbarton
Date:     2013-04-23 20:10:22 +0000 (Tue, 23 Apr 2013)
Log Message:
-----------
fix [#34958] keyframe many items would fail if there was a (") in the text.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/anim_sys.c
    trunk/blender/source/blender/blenkernel/intern/linestyle.c
    trunk/blender/source/blender/editors/animation/drivers.c
    trunk/blender/source/blender/makesrna/intern/rna_access.c
    trunk/blender/source/blender/makesrna/intern/rna_armature.c
    trunk/blender/source/blender/makesrna/intern/rna_boid.c
    trunk/blender/source/blender/makesrna/intern/rna_cloth.c
    trunk/blender/source/blender/makesrna/intern/rna_constraint.c
    trunk/blender/source/blender/makesrna/intern/rna_dynamicpaint.c
    trunk/blender/source/blender/makesrna/intern/rna_fluidsim.c
    trunk/blender/source/blender/makesrna/intern/rna_key.c
    trunk/blender/source/blender/makesrna/intern/rna_linestyle.c
    trunk/blender/source/blender/makesrna/intern/rna_mask.c
    trunk/blender/source/blender/makesrna/intern/rna_mesh.c
    trunk/blender/source/blender/makesrna/intern/rna_modifier.c
    trunk/blender/source/blender/makesrna/intern/rna_nla.c
    trunk/blender/source/blender/makesrna/intern/rna_nodetree.c
    trunk/blender/source/blender/makesrna/intern/rna_object_force.c
    trunk/blender/source/blender/makesrna/intern/rna_particle.c
    trunk/blender/source/blender/makesrna/intern/rna_pose.c
    trunk/blender/source/blender/makesrna/intern/rna_scene.c
    trunk/blender/source/blender/makesrna/intern/rna_sequencer.c
    trunk/blender/source/blender/makesrna/intern/rna_smoke.c
    trunk/blender/source/blender/makesrna/intern/rna_texture.c
    trunk/blender/source/blender/makesrna/intern/rna_tracking.c

Modified: trunk/blender/source/blender/blenkernel/intern/anim_sys.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/anim_sys.c	2013-04-23 18:59:33 UTC (rev 56248)
+++ trunk/blender/source/blender/blenkernel/intern/anim_sys.c	2013-04-23 20:10:22 UTC (rev 56249)
@@ -745,7 +745,7 @@
 	/* NLA Data - Animation Data for Strips */
 	for (nlt = adt->nla_tracks.first; nlt; nlt = nlt->next)
 		nlastrips_path_rename_fix(owner_id, prefix, oldName, newName, oldN, newN, &nlt->strips, verify_paths);
-		
+
 	/* free the temp names */
 	MEM_freeN(oldN);
 	MEM_freeN(newN);

Modified: trunk/blender/source/blender/blenkernel/intern/linestyle.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/linestyle.c	2013-04-23 18:59:33 UTC (rev 56248)
+++ trunk/blender/source/blender/blenkernel/intern/linestyle.c	2013-04-23 20:10:22 UTC (rev 56249)
@@ -1018,25 +1018,29 @@
 
 	for (m = (LineStyleModifier *)linestyle->color_modifiers.first; m; m = m->next) {
 		switch (m->type) {
-		case LS_MODIFIER_ALONG_STROKE:
-			if (color_ramp == ((LineStyleColorModifier_AlongStroke *)m)->color_ramp)
-				found = true;
-			break;
-		case LS_MODIFIER_DISTANCE_FROM_CAMERA:
-			if (color_ramp == ((LineStyleColorModifier_DistanceFromCamera *)m)->color_ramp)
-				found = true;
-			break;
-		case LS_MODIFIER_DISTANCE_FROM_OBJECT:
-			if (color_ramp == ((LineStyleColorModifier_DistanceFromObject *)m)->color_ramp)
-				found = true;
-			break;
-		case LS_MODIFIER_MATERIAL:
-			if (color_ramp == ((LineStyleColorModifier_Material *)m)->color_ramp)
-				found = true;
-			break;
+			case LS_MODIFIER_ALONG_STROKE:
+				if (color_ramp == ((LineStyleColorModifier_AlongStroke *)m)->color_ramp)
+					found = true;
+				break;
+			case LS_MODIFIER_DISTANCE_FROM_CAMERA:
+				if (color_ramp == ((LineStyleColorModifier_DistanceFromCamera *)m)->color_ramp)
+					found = true;
+				break;
+			case LS_MODIFIER_DISTANCE_FROM_OBJECT:
+				if (color_ramp == ((LineStyleColorModifier_DistanceFromObject *)m)->color_ramp)
+					found = true;
+				break;
+			case LS_MODIFIER_MATERIAL:
+				if (color_ramp == ((LineStyleColorModifier_Material *)m)->color_ramp)
+					found = true;
+				break;
 		}
-		if (found)
-			return BLI_sprintfN("color_modifiers[\"%s\"].color_ramp", m->name);
+
+		if (found) {
+			char name_esc[sizeof(m->name) * 2];
+			BLI_strescape(name_esc, m->name, sizeof(name_esc));
+			return BLI_sprintfN("color_modifiers[\"%s\"].color_ramp", name_esc);
+		}
 	}
 	printf("BKE_path_from_ID_to_color_ramp: No color ramps correspond to the given pointer.\n");
 	return NULL;

Modified: trunk/blender/source/blender/editors/animation/drivers.c
===================================================================
--- trunk/blender/source/blender/editors/animation/drivers.c	2013-04-23 18:59:33 UTC (rev 56248)
+++ trunk/blender/source/blender/editors/animation/drivers.c	2013-04-23 20:10:22 UTC (rev 56249)
@@ -434,11 +434,17 @@
 					
 					/* assumes: texture will only be shown if it is active material's active texture it's ok */
 					if ((ID *)tex == id) {
+						char name_esc_ma[(sizeof(ma->id.name) - 2) * 2];
+						char name_esc_tex[(sizeof(tex->id.name) - 2) * 2];
+
+						BLI_strescape(name_esc_ma, ma->id.name + 2, sizeof(name_esc_ma));
+						BLI_strescape(name_esc_tex, tex->id.name + 2, sizeof(name_esc_tex));
+
 						/* create new path */
 						// TODO: use RNA path functions to construct step by step instead?
 						// FIXME: maybe this isn't even needed anymore...
 						path = BLI_sprintfN("material_slots[\"%s\"].material.texture_slots[\"%s\"].texture.%s", 
-						                    ma->id.name + 2, tex->id.name + 2, basepath);
+						                    name_esc_ma, name_esc_tex, basepath);
 							
 						/* free old one */
 						MEM_freeN(basepath);

Modified: trunk/blender/source/blender/makesrna/intern/rna_access.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_access.c	2013-04-23 18:59:33 UTC (rev 56248)
+++ trunk/blender/source/blender/makesrna/intern/rna_access.c	2013-04-23 20:10:22 UTC (rev 56249)
@@ -4325,14 +4325,25 @@
 	propname = RNA_property_identifier(prop);
 
 	if (ptrpath) {
-		path = BLI_sprintfN(is_rna ? "%s.%s" : "%s[\"%s\"]", ptrpath, propname);
+		if (is_rna) {
+			path = BLI_sprintfN("%s.%s", ptrpath, propname);
+		}
+		else {
+			char propname_esc[MAX_IDPROP_NAME * 2];
+			BLI_strescape(propname_esc, propname, sizeof(propname_esc));
+			path = BLI_sprintfN("%s[\"%s\"]", ptrpath, propname_esc);
+		}
 		MEM_freeN(ptrpath);
 	}
 	else if (RNA_struct_is_ID(ptr->type)) {
-		if (is_rna)
+		if (is_rna) {
 			path = BLI_strdup(propname);
-		else
-			path = BLI_sprintfN("[\"%s\"]", propname);
+		}
+		else {
+			char propname_esc[MAX_IDPROP_NAME * 2];
+			BLI_strescape(propname_esc, propname, sizeof(propname_esc));
+			path = BLI_sprintfN("[\"%s\"]", propname_esc);
+		}
 	}
 	else {
 		path = NULL;

Modified: trunk/blender/source/blender/makesrna/intern/rna_armature.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_armature.c	2013-04-23 18:59:33 UTC (rev 56248)
+++ trunk/blender/source/blender/makesrna/intern/rna_armature.c	2013-04-23 20:10:22 UTC (rev 56249)
@@ -191,20 +191,23 @@
 
 static char *rna_Bone_path(PointerRNA *ptr)
 {
+	ID *id = ptr->id.data;
 	Bone *bone = (Bone *)ptr->data;
+	char name_esc[sizeof(bone->name) * 2];
 	
+	BLI_strescape(name_esc, bone->name, sizeof(name_esc));
+
 	/* special exception for trying to get the path where ID-block is Object
-	 *	- this will be assumed to be from a Pose Bone...
+	 * - this will be assumed to be from a Pose Bone...
 	 */
-	if (ptr->id.data) {
-		ID *id = (ID *)ptr->id.data;
-		
-		if (GS(id->name) == ID_OB)
-			return BLI_sprintfN("pose.bones[\"%s\"].bone", bone->name);
+	if (id) {
+		if (GS(id->name) == ID_OB) {
+			return BLI_sprintfN("pose.bones[\"%s\"].bone", name_esc);
+		}
 	}
 	
 	/* from armature... */
-	return BLI_sprintfN("bones[\"%s\"]", bone->name);
+	return BLI_sprintfN("bones[\"%s\"]", name_esc);
 }
 
 static IDProperty *rna_Bone_idprops(PointerRNA *ptr, bool create)

Modified: trunk/blender/source/blender/makesrna/intern/rna_boid.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_boid.c	2013-04-23 18:59:33 UTC (rev 56248)
+++ trunk/blender/source/blender/makesrna/intern/rna_boid.c	2013-04-23 20:10:22 UTC (rev 56249)
@@ -142,7 +142,12 @@
 
 static char *rna_BoidRule_path(PointerRNA *ptr)
 {
-	return BLI_sprintfN("rules[\"%s\"]", ((BoidRule *)ptr->data)->name);  /* XXX not unique */
+	BoidRule *rule = (BoidRule *)ptr->data;
+	char name_esc[sizeof(rule->name) * 2];
+
+	BLI_strescape(name_esc, rule->name, sizeof(name_esc));
+
+	return BLI_sprintfN("rules[\"%s\"]", name_esc);  /* XXX not unique */
 }
 
 static PointerRNA rna_BoidState_active_boid_rule_get(PointerRNA *ptr)

Modified: trunk/blender/source/blender/makesrna/intern/rna_cloth.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_cloth.c	2013-04-23 18:59:33 UTC (rev 56248)
+++ trunk/blender/source/blender/makesrna/intern/rna_cloth.c	2013-04-23 20:10:22 UTC (rev 56249)
@@ -212,7 +212,14 @@
 	Object *ob = (Object *)ptr->id.data;
 	ModifierData *md = modifiers_findByType(ob, eModifierType_Cloth);
 
-	return md ? BLI_sprintfN("modifiers[\"%s\"].settings", md->name) : NULL;
+	if (md) {
+		char name_esc[sizeof(md->name) * 2];
+		BLI_strescape(name_esc, md->name, sizeof(name_esc));
+		return BLI_sprintfN("modifiers[\"%s\"].settings", name_esc);
+	}
+	else {
+		return NULL;
+	}
 }
 
 static char *rna_ClothCollisionSettings_path(PointerRNA *ptr)
@@ -220,7 +227,14 @@
 	Object *ob = (Object *)ptr->id.data;
 	ModifierData *md = modifiers_findByType(ob, eModifierType_Cloth);
 
-	return md ? BLI_sprintfN("modifiers[\"%s\"].collision_settings", md->name) : NULL;
+	if (md) {
+		char name_esc[sizeof(md->name) * 2];
+		BLI_strescape(name_esc, md->name, sizeof(name_esc));
+		return BLI_sprintfN("modifiers[\"%s\"].collision_settings", name_esc);
+	}
+	else {
+		return NULL;
+	}
 }
 
 #else

Modified: trunk/blender/source/blender/makesrna/intern/rna_constraint.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_constraint.c	2013-04-23 18:59:33 UTC (rev 56248)
+++ trunk/blender/source/blender/makesrna/intern/rna_constraint.c	2013-04-23 20:10:22 UTC (rev 56249)
@@ -251,14 +251,21 @@
 	ListBase *lb = get_constraint_lb(ob, con, &pchan);
 
 	if (lb == NULL)
-		printf("rna_Constraint_path: internal error, constraint '%s' not found in object '%s'\n",
-		       con->name, ob->id.name);
+		printf("%s: internal error, constraint '%s' not found in object '%s'\n",
+		       __func__, con->name, ob->id.name);
 
 	if (pchan) {
-		return BLI_sprintfN("pose.bones[\"%s\"].constraints[\"%s\"]", pchan->name, con->name);
+		char name_esc_pchan[sizeof(pchan->name) * 2];
+		char name_esc_const[sizeof(con->name) * 2];
+		BLI_strescape(name_esc_pchan, pchan->name, sizeof(name_esc_pchan));
+		BLI_strescape(name_esc_const, con->name,   sizeof(name_esc_const));
+		return BLI_sprintfN("pose.bones[\"%s\"].constraints[\"%s\"]", name_esc_pchan, name_esc_const);
 	}
-	
-	return BLI_sprintfN("constraints[\"%s\"]", con->name);
+	else {
+		char name_esc_const[sizeof(con->name) * 2];
+		BLI_strescape(name_esc_const, con->name,   sizeof(name_esc_const));
+		return BLI_sprintfN("constraints[\"%s\"]", name_esc_const);
+	}
 }
 
 static void rna_Constraint_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)

Modified: trunk/blender/source/blender/makesrna/intern/rna_dynamicpaint.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_dynamicpaint.c	2013-04-23 18:59:33 UTC (rev 56248)
+++ trunk/blender/source/blender/makesrna/intern/rna_dynamicpaint.c	2013-04-23 20:10:22 UTC (rev 56249)
@@ -62,24 +62,32 @@
 {
 	DynamicPaintCanvasSettings *settings = (DynamicPaintCanvasSettings *)ptr->data;
 	ModifierData *md = (ModifierData *)settings->pmd;
+	char name_esc[sizeof(md->name) * 2];
 
-	return BLI_sprintfN("modifiers[\"%s\"].canvas_settings", md->name);
+	BLI_strescape(name_esc, md->name, sizeof(name_esc));

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list