[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