diff options
author | Campbell Barton <ideasman42@gmail.com> | 2013-04-24 00:10:22 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2013-04-24 00:10:22 +0400 |
commit | 7dde3551853018147d99e9454abb337384e7a32e (patch) | |
tree | a0255cc50e7621d8387baf68af03bc0a6366ce6a /source/blender/makesrna/intern/rna_object_force.c | |
parent | 9afdda36893276321f7da9af94babf7a5b7b62fe (diff) |
fix [#34958] keyframe many items would fail if there was a (") in the text.
Diffstat (limited to 'source/blender/makesrna/intern/rna_object_force.c')
-rw-r--r-- | source/blender/makesrna/intern/rna_object_force.c | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/source/blender/makesrna/intern/rna_object_force.c b/source/blender/makesrna/intern/rna_object_force.c index ab8b54334fe..2d3f2ddf699 100644 --- a/source/blender/makesrna/intern/rna_object_force.c +++ b/source/blender/makesrna/intern/rna_object_force.c @@ -320,7 +320,10 @@ static char *rna_CollisionSettings_path(PointerRNA *UNUSED(ptr)) ModifierData *md = (ModifierData *)modifiers_findByType(ob, eModifierType_Collision); if (md) { - return BLI_sprintfN("modifiers[\"%s\"].settings", md->name); + 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 BLI_strdup(""); @@ -462,8 +465,10 @@ static char *rna_SoftBodySettings_path(PointerRNA *ptr) { Object *ob = (Object *)ptr->id.data; ModifierData *md = (ModifierData *)modifiers_findByType(ob, eModifierType_Softbody); - - return BLI_sprintfN("modifiers[\"%s\"].settings", md->name); + char name_esc[sizeof(md->name) * 2]; + + BLI_strescape(name_esc, md->name, sizeof(name_esc)); + return BLI_sprintfN("modifiers[\"%s\"].settings", name_esc); } static int particle_id_check(PointerRNA *ptr) @@ -613,13 +618,16 @@ static char *rna_EffectorWeight_path(PointerRNA *ptr) else { Object *ob = (Object *)ptr->id.data; ModifierData *md; + char name_esc[sizeof(md->name) * 2]; + + BLI_strescape(name_esc, md->name, sizeof(name_esc)); /* check softbody modifier */ md = (ModifierData *)modifiers_findByType(ob, eModifierType_Softbody); if (md) { /* no pointer from modifier data to actual softbody storage, would be good to add */ if (ob->soft->effector_weights == ew) - return BLI_sprintfN("modifiers[\"%s\"].settings.effector_weights", md->name); + return BLI_sprintfN("modifiers[\"%s\"].settings.effector_weights", name_esc); } /* check cloth modifier */ @@ -628,7 +636,7 @@ static char *rna_EffectorWeight_path(PointerRNA *ptr) ClothModifierData *cmd = (ClothModifierData *)md; if (cmd->sim_parms->effector_weights == ew) - return BLI_sprintfN("modifiers[\"%s\"].settings.effector_weights", md->name); + return BLI_sprintfN("modifiers[\"%s\"].settings.effector_weights", name_esc); } /* check smoke modifier */ @@ -637,7 +645,7 @@ static char *rna_EffectorWeight_path(PointerRNA *ptr) SmokeModifierData *smd = (SmokeModifierData *)md; if (smd->domain->effector_weights == ew) - return BLI_sprintfN("modifiers[\"%s\"].settings.effector_weights", md->name); + return BLI_sprintfN("modifiers[\"%s\"].settings.effector_weights", name_esc); } /* check dynamic paint modifier */ @@ -649,9 +657,13 @@ static char *rna_EffectorWeight_path(PointerRNA *ptr) DynamicPaintSurface *surface = pmd->canvas->surfaces.first; for (; surface; surface = surface->next) { - if (surface->effector_weights == ew) + if (surface->effector_weights == ew) { + char name_esc_surface[sizeof(surface->name) * 2]; + + BLI_strescape(name_esc_surface, surface->name, sizeof(name_esc_surface)); return BLI_sprintfN("modifiers[\"%s\"].canvas_settings.canvas_surfaces[\"%s\"]" - ".effector_weights", md->name, surface->name); + ".effector_weights", name_esc, name_esc_surface); + } } } } |