forked from bartvdbraak/blender
fix [#34958] keyframe many items would fail if there was a (") in the text.
This commit is contained in:
parent
9afdda3689
commit
7dde355185
@ -745,7 +745,7 @@ void BKE_animdata_fix_paths_rename(ID *owner_id, AnimData *adt, ID *ref_id, cons
|
||||
/* 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);
|
||||
|
@ -1018,25 +1018,29 @@ char *BKE_path_from_ID_to_color_ramp(FreestyleLineStyle *linestyle, ColorBand *c
|
||||
|
||||
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) {
|
||||
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);
|
||||
}
|
||||
if (found)
|
||||
return BLI_sprintfN("color_modifiers[\"%s\"].color_ramp", m->name);
|
||||
}
|
||||
printf("BKE_path_from_ID_to_color_ramp: No color ramps correspond to the given pointer.\n");
|
||||
return NULL;
|
||||
|
@ -434,11 +434,17 @@ static char *get_driver_path_hack(bContext *C, PointerRNA *ptr, PropertyRNA *pro
|
||||
|
||||
/* 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);
|
||||
|
@ -4325,14 +4325,25 @@ char *RNA_path_from_ID_to_property(PointerRNA *ptr, PropertyRNA *prop)
|
||||
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;
|
||||
|
@ -191,20 +191,23 @@ static void rna_Bone_select_update(Main *UNUSED(bmain), Scene *UNUSED(scene), Po
|
||||
|
||||
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)
|
||||
|
@ -142,7 +142,12 @@ static StructRNA *rna_BoidRule_refine(struct PointerRNA *ptr)
|
||||
|
||||
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)
|
||||
|
@ -212,7 +212,14 @@ static char *rna_ClothSettings_path(PointerRNA *ptr)
|
||||
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 @@ static char *rna_ClothCollisionSettings_path(PointerRNA *ptr)
|
||||
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
|
||||
|
@ -251,14 +251,21 @@ static char *rna_Constraint_path(PointerRNA *ptr)
|
||||
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);
|
||||
}
|
||||
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);
|
||||
}
|
||||
|
||||
return BLI_sprintfN("constraints[\"%s\"]", con->name);
|
||||
}
|
||||
|
||||
static void rna_Constraint_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)
|
||||
|
@ -62,24 +62,32 @@ static char *rna_DynamicPaintCanvasSettings_path(PointerRNA *ptr)
|
||||
{
|
||||
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));
|
||||
return BLI_sprintfN("modifiers[\"%s\"].canvas_settings", name_esc);
|
||||
}
|
||||
|
||||
static char *rna_DynamicPaintBrushSettings_path(PointerRNA *ptr)
|
||||
{
|
||||
DynamicPaintBrushSettings *settings = (DynamicPaintBrushSettings *)ptr->data;
|
||||
ModifierData *md = (ModifierData *)settings->pmd;
|
||||
char name_esc[sizeof(md->name) * 2];
|
||||
|
||||
return BLI_sprintfN("modifiers[\"%s\"].brush_settings", md->name);
|
||||
BLI_strescape(name_esc, md->name, sizeof(name_esc));
|
||||
return BLI_sprintfN("modifiers[\"%s\"].brush_settings", name_esc);
|
||||
}
|
||||
|
||||
static char *rna_DynamicPaintSurface_path(PointerRNA *ptr)
|
||||
{
|
||||
DynamicPaintSurface *surface = (DynamicPaintSurface *)ptr->data;
|
||||
ModifierData *md = (ModifierData *)surface->canvas->pmd;
|
||||
char name_esc[sizeof(md->name) * 2];
|
||||
char name_esc_surface[sizeof(surface->name) * 2];
|
||||
|
||||
return BLI_sprintfN("modifiers[\"%s\"].canvas_settings.canvas_surfaces[\"%s\"]", md->name, surface->name);
|
||||
BLI_strescape(name_esc, md->name, sizeof(name_esc));
|
||||
BLI_strescape(name_esc_surface, surface->name, sizeof(name_esc_surface));
|
||||
return BLI_sprintfN("modifiers[\"%s\"].canvas_settings.canvas_surfaces[\"%s\"]", name_esc, name_esc_surface);
|
||||
}
|
||||
|
||||
|
||||
|
@ -197,8 +197,10 @@ static char *rna_FluidSettings_path(PointerRNA *ptr)
|
||||
{
|
||||
FluidsimSettings *fss = (FluidsimSettings *)ptr->data;
|
||||
ModifierData *md = (ModifierData *)fss->fmd;
|
||||
char name_esc[sizeof(md->name) * 2];
|
||||
|
||||
return BLI_sprintfN("modifiers[\"%s\"].settings", md->name);
|
||||
BLI_strescape(name_esc, md->name, sizeof(name_esc));
|
||||
return BLI_sprintfN("modifiers[\"%s\"].settings", name_esc);
|
||||
}
|
||||
|
||||
static void rna_FluidMeshVertex_data_begin(CollectionPropertyIterator *iter, PointerRNA *ptr)
|
||||
|
@ -351,11 +351,14 @@ static char *rna_ShapeKey_path(PointerRNA *ptr)
|
||||
{
|
||||
KeyBlock *kb = (KeyBlock *)ptr->data;
|
||||
ID *id = ptr->id.data;
|
||||
|
||||
char name_esc[sizeof(kb->name) * 2];
|
||||
|
||||
BLI_strescape(name_esc, kb->name, sizeof(name_esc));
|
||||
|
||||
if ((id) && (GS(id->name) != ID_KE))
|
||||
return BLI_sprintfN("shape_keys.key_blocks[\"%s\"]", kb->name);
|
||||
return BLI_sprintfN("shape_keys.key_blocks[\"%s\"]", name_esc);
|
||||
else
|
||||
return BLI_sprintfN("key_blocks[\"%s\"]", kb->name);
|
||||
return BLI_sprintfN("key_blocks[\"%s\"]", name_esc);
|
||||
}
|
||||
|
||||
static void rna_Key_update_data(Main *bmain, Scene *UNUSED(scene), PointerRNA *ptr)
|
||||
@ -436,12 +439,15 @@ static char *rna_ShapeKeyPoint_path(PointerRNA *ptr)
|
||||
kb = rna_ShapeKeyData_find_keyblock(key, point);
|
||||
|
||||
if (kb) {
|
||||
char name_esc_kb[sizeof(kb->name) * 2];
|
||||
int index = rna_ShapeKeyPoint_get_index(key, kb, point);
|
||||
|
||||
BLI_strescape(name_esc_kb, kb->name, sizeof(name_esc_kb));
|
||||
|
||||
if (GS(id->name) == ID_KE)
|
||||
return BLI_sprintfN("key_blocks[\"%s\"].data[%d]", kb->name, index);
|
||||
return BLI_sprintfN("key_blocks[\"%s\"].data[%d]", name_esc_kb, index);
|
||||
else
|
||||
return BLI_sprintfN("shape_keys.key_blocks[\"%s\"].data[%d]", kb->name, index);
|
||||
return BLI_sprintfN("shape_keys.key_blocks[\"%s\"].data[%d]", name_esc_kb, index);
|
||||
}
|
||||
else
|
||||
return NULL; /* XXX: there's really no way to resolve this... */
|
||||
|
@ -179,22 +179,34 @@ static StructRNA *rna_LineStyle_geometry_modifier_refine(struct PointerRNA *ptr)
|
||||
|
||||
static char *rna_LineStyle_color_modifier_path(PointerRNA *ptr)
|
||||
{
|
||||
return BLI_sprintfN("color_modifiers[\"%s\"]", ((LineStyleModifier *)ptr->data)->name);
|
||||
LineStyleModifier *m = (LineStyleModifier *)ptr->data;
|
||||
char name_esc[sizeof(m->name) * 2];
|
||||
BLI_strescape(name_esc, m->name, sizeof(name_esc));
|
||||
return BLI_sprintfN("color_modifiers[\"%s\"]", name_esc);
|
||||
}
|
||||
|
||||
static char *rna_LineStyle_alpha_modifier_path(PointerRNA *ptr)
|
||||
{
|
||||
return BLI_sprintfN("alpha_modifiers[\"%s\"]", ((LineStyleModifier *)ptr->data)->name);
|
||||
LineStyleModifier *m = (LineStyleModifier *)ptr->data;
|
||||
char name_esc[sizeof(m->name) * 2];
|
||||
BLI_strescape(name_esc, m->name, sizeof(name_esc));
|
||||
return BLI_sprintfN("alpha_modifiers[\"%s\"]", name_esc);
|
||||
}
|
||||
|
||||
static char *rna_LineStyle_thickness_modifier_path(PointerRNA *ptr)
|
||||
{
|
||||
return BLI_sprintfN("thickness_modifiers[\"%s\"]", ((LineStyleModifier *)ptr->data)->name);
|
||||
LineStyleModifier *m = (LineStyleModifier *)ptr->data;
|
||||
char name_esc[sizeof(m->name) * 2];
|
||||
BLI_strescape(name_esc, m->name, sizeof(name_esc));
|
||||
return BLI_sprintfN("thickness_modifiers[\"%s\"]", name_esc);
|
||||
}
|
||||
|
||||
static char *rna_LineStyle_geometry_modifier_path(PointerRNA *ptr)
|
||||
{
|
||||
return BLI_sprintfN("geometry_modifiers[\"%s\"]", ((LineStyleModifier *)ptr->data)->name);
|
||||
LineStyleModifier *m = (LineStyleModifier *)ptr->data;
|
||||
char name_esc[sizeof(m->name) * 2];
|
||||
BLI_strescape(name_esc, m->name, sizeof(name_esc));
|
||||
return BLI_sprintfN("geometry_modifiers[\"%s\"]", name_esc);
|
||||
}
|
||||
|
||||
static void rna_LineStyleColorModifier_name_set(PointerRNA *ptr, const char *value)
|
||||
|
@ -168,7 +168,10 @@ static void rna_Mask_layer_active_index_range(PointerRNA *ptr, int *min, int *ma
|
||||
|
||||
static char *rna_MaskLayer_path(PointerRNA *ptr)
|
||||
{
|
||||
return BLI_sprintfN("layers[\"%s\"]", ((MaskLayer *)ptr->data)->name);
|
||||
MaskLayer *masklay = (MaskLayer *)ptr->data;
|
||||
char name_esc[sizeof(masklay->name) * 2];
|
||||
BLI_strescape(name_esc, masklay->name, sizeof(name_esc));
|
||||
return BLI_sprintfN("layers[\"%s\"]", name_esc);
|
||||
}
|
||||
|
||||
static PointerRNA rna_Mask_layer_active_get(PointerRNA *ptr)
|
||||
|
@ -562,7 +562,10 @@ DEFINE_CUSTOMDATA_LAYER_COLLECTION_ACTIVEITEM(uv_layer, ldata, CD_MLOOPUV, rende
|
||||
|
||||
static char *rna_MeshUVLoopLayer_path(PointerRNA *ptr)
|
||||
{
|
||||
return BLI_sprintfN("uv_layers[\"%s\"]", ((CustomDataLayer *)ptr->data)->name);
|
||||
CustomDataLayer *cdl = ptr->data;
|
||||
char name_esc[sizeof(cdl->name) * 2];
|
||||
BLI_strescape(name_esc, cdl->name, sizeof(name_esc));
|
||||
return BLI_sprintfN("uv_layers[\"%s\"]", name_esc);
|
||||
}
|
||||
|
||||
static void rna_MeshUVLoopLayer_data_begin(CollectionPropertyIterator *iter, PointerRNA *ptr)
|
||||
@ -879,7 +882,10 @@ DEFINE_CUSTOMDATA_LAYER_COLLECTION(skin_vertice, vdata, CD_MVERT_SKIN);
|
||||
|
||||
static char *rna_MeshSkinVertexLayer_path(PointerRNA *ptr)
|
||||
{
|
||||
return BLI_sprintfN("skin_vertices[\"%s\"]", ((CustomDataLayer *)ptr->data)->name);
|
||||
CustomDataLayer *cdl = ptr->data;
|
||||
char name_esc[sizeof(cdl->name) * 2];
|
||||
BLI_strescape(name_esc, cdl->name, sizeof(name_esc));
|
||||
return BLI_sprintfN("skin_vertices[\"%s\"]", name_esc);
|
||||
}
|
||||
|
||||
static char *rna_VertCustomData_data_path(PointerRNA *ptr, char *collection, int type);
|
||||
@ -1101,12 +1107,18 @@ static char *rna_MeshVertex_path(PointerRNA *ptr)
|
||||
|
||||
static char *rna_MeshTextureFaceLayer_path(PointerRNA *ptr)
|
||||
{
|
||||
return BLI_sprintfN("tessface_uv_textures[\"%s\"]", ((CustomDataLayer *)ptr->data)->name);
|
||||
CustomDataLayer *cdl = ptr->data;
|
||||
char name_esc[sizeof(cdl->name) * 2];
|
||||
BLI_strescape(name_esc, cdl->name, sizeof(name_esc));
|
||||
return BLI_sprintfN("tessface_uv_textures[\"%s\"]", name_esc);
|
||||
}
|
||||
|
||||
static char *rna_MeshTexturePolyLayer_path(PointerRNA *ptr)
|
||||
{
|
||||
return BLI_sprintfN("uv_textures[\"%s\"]", ((CustomDataLayer *)ptr->data)->name);
|
||||
CustomDataLayer *cdl = ptr->data;
|
||||
char name_esc[sizeof(cdl->name) * 2];
|
||||
BLI_strescape(name_esc, cdl->name, sizeof(name_esc));
|
||||
return BLI_sprintfN("uv_textures[\"%s\"]", name_esc);
|
||||
}
|
||||
|
||||
static char *rna_VertCustomData_data_path(PointerRNA *ptr, char *collection, int type)
|
||||
@ -1119,8 +1131,11 @@ static char *rna_VertCustomData_data_path(PointerRNA *ptr, char *collection, int
|
||||
for (cdl = vdata->layers, a = 0; a < vdata->totlayer; cdl++, a++) {
|
||||
if (cdl->type == type) {
|
||||
b = ((char *)ptr->data - ((char *)cdl->data)) / CustomData_sizeof(type);
|
||||
if (b >= 0 && b < totvert)
|
||||
return BLI_sprintfN("%s[\"%s\"].data[%d]", collection, cdl->name, b);
|
||||
if (b >= 0 && b < totvert) {
|
||||
char name_esc[sizeof(cdl->name) * 2];
|
||||
BLI_strescape(name_esc, cdl->name, sizeof(name_esc));
|
||||
return BLI_sprintfN("%s[\"%s\"].data[%d]", collection, name_esc, b);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1137,8 +1152,11 @@ static char *rna_PolyCustomData_data_path(PointerRNA *ptr, char *collection, int
|
||||
for (cdl = pdata->layers, a = 0; a < pdata->totlayer; cdl++, a++) {
|
||||
if (cdl->type == type) {
|
||||
b = ((char *)ptr->data - ((char *)cdl->data)) / CustomData_sizeof(type);
|
||||
if (b >= 0 && b < totpoly)
|
||||
return BLI_sprintfN("%s[\"%s\"].data[%d]", collection, cdl->name, b);
|
||||
if (b >= 0 && b < totpoly) {
|
||||
char name_esc[sizeof(cdl->name) * 2];
|
||||
BLI_strescape(name_esc, cdl->name, sizeof(name_esc));
|
||||
return BLI_sprintfN("%s[\"%s\"].data[%d]", collection, name_esc, b);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1155,8 +1173,11 @@ static char *rna_LoopCustomData_data_path(PointerRNA *ptr, char *collection, int
|
||||
for (cdl = ldata->layers, a = 0; a < ldata->totlayer; cdl++, a++) {
|
||||
if (cdl->type == type) {
|
||||
b = ((char *)ptr->data - ((char *)cdl->data)) / CustomData_sizeof(type);
|
||||
if (b >= 0 && b < totloop)
|
||||
return BLI_sprintfN("%s[\"%s\"].data[%d]", collection, cdl->name, b);
|
||||
if (b >= 0 && b < totloop) {
|
||||
char name_esc[sizeof(cdl->name) * 2];
|
||||
BLI_strescape(name_esc, cdl->name, sizeof(name_esc));
|
||||
return BLI_sprintfN("%s[\"%s\"].data[%d]", collection, name_esc, b);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1173,8 +1194,11 @@ static char *rna_FaceCustomData_data_path(PointerRNA *ptr, char *collection, int
|
||||
for (cdl = fdata->layers, a = 0; a < fdata->totlayer; cdl++, a++) {
|
||||
if (cdl->type == type) {
|
||||
b = ((char *)ptr->data - ((char *)cdl->data)) / CustomData_sizeof(type);
|
||||
if (b >= 0 && b < totloop)
|
||||
return BLI_sprintfN("%s[\"%s\"].data[%d]", collection, cdl->name, b);
|
||||
if (b >= 0 && b < totloop) {
|
||||
char name_esc[sizeof(cdl->name) * 2];
|
||||
BLI_strescape(name_esc, cdl->name, sizeof(name_esc));
|
||||
return BLI_sprintfN("%s[\"%s\"].data[%d]", collection, name_esc, b);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1198,12 +1222,18 @@ static char *rna_MeshTexturePoly_path(PointerRNA *ptr)
|
||||
|
||||
static char *rna_MeshColorLayer_path(PointerRNA *ptr)
|
||||
{
|
||||
return BLI_sprintfN("tessface_vertex_colors[\"%s\"]", ((CustomDataLayer *)ptr->data)->name);
|
||||
CustomDataLayer *cdl = ptr->data;
|
||||
char name_esc[sizeof(cdl->name) * 2];
|
||||
BLI_strescape(name_esc, cdl->name, sizeof(name_esc));
|
||||
return BLI_sprintfN("tessface_vertex_colors[\"%s\"]", name_esc);
|
||||
}
|
||||
|
||||
static char *rna_MeshLoopColorLayer_path(PointerRNA *ptr)
|
||||
{
|
||||
return BLI_sprintfN("vertex_colors[\"%s\"]", ((CustomDataLayer *)ptr->data)->name);
|
||||
CustomDataLayer *cdl = ptr->data;
|
||||
char name_esc[sizeof(cdl->name) * 2];
|
||||
BLI_strescape(name_esc, cdl->name, sizeof(name_esc));
|
||||
return BLI_sprintfN("vertex_colors[\"%s\"]", name_esc);
|
||||
}
|
||||
|
||||
static char *rna_MeshColor_path(PointerRNA *ptr)
|
||||
@ -1213,7 +1243,10 @@ static char *rna_MeshColor_path(PointerRNA *ptr)
|
||||
|
||||
static char *rna_MeshIntPropertyLayer_path(PointerRNA *ptr)
|
||||
{
|
||||
return BLI_sprintfN("int_layers[\"%s\"]", ((CustomDataLayer *)ptr->data)->name);
|
||||
CustomDataLayer *cdl = ptr->data;
|
||||
char name_esc[sizeof(cdl->name) * 2];
|
||||
BLI_strescape(name_esc, cdl->name, sizeof(name_esc));
|
||||
return BLI_sprintfN("int_layers[\"%s\"]", name_esc);
|
||||
}
|
||||
|
||||
static char *rna_MeshIntProperty_path(PointerRNA *ptr)
|
||||
@ -1223,7 +1256,10 @@ static char *rna_MeshIntProperty_path(PointerRNA *ptr)
|
||||
|
||||
static char *rna_MeshFloatPropertyLayer_path(PointerRNA *ptr)
|
||||
{
|
||||
return BLI_sprintfN("float_layers[\"%s\"]", ((CustomDataLayer *)ptr->data)->name);
|
||||
CustomDataLayer *cdl = ptr->data;
|
||||
char name_esc[sizeof(cdl->name) * 2];
|
||||
BLI_strescape(name_esc, cdl->name, sizeof(name_esc));
|
||||
return BLI_sprintfN("float_layers[\"%s\"]", name_esc);
|
||||
}
|
||||
|
||||
static char *rna_MeshFloatProperty_path(PointerRNA *ptr)
|
||||
@ -1233,7 +1269,10 @@ static char *rna_MeshFloatProperty_path(PointerRNA *ptr)
|
||||
|
||||
static char *rna_MeshStringPropertyLayer_path(PointerRNA *ptr)
|
||||
{
|
||||
return BLI_sprintfN("string_layers[\"%s\"]", ((CustomDataLayer *)ptr->data)->name);
|
||||
CustomDataLayer *cdl = ptr->data;
|
||||
char name_esc[sizeof(cdl->name) * 2];
|
||||
BLI_strescape(name_esc, cdl->name, sizeof(name_esc));
|
||||
return BLI_sprintfN("string_layers[\"%s\"]", name_esc);
|
||||
}
|
||||
|
||||
static char *rna_MeshStringProperty_path(PointerRNA *ptr)
|
||||
|
@ -255,7 +255,11 @@ static void rna_Modifier_name_set(PointerRNA *ptr, const char *value)
|
||||
|
||||
static char *rna_Modifier_path(PointerRNA *ptr)
|
||||
{
|
||||
return BLI_sprintfN("modifiers[\"%s\"]", ((ModifierData *)ptr->data)->name);
|
||||
ModifierData *md = ptr->data;
|
||||
char name_esc[sizeof(md->name) * 2];
|
||||
|
||||
BLI_strescape(name_esc, md->name, sizeof(name_esc));
|
||||
return BLI_sprintfN("modifiers[\"%s\"]", name_esc);
|
||||
}
|
||||
|
||||
static void rna_Modifier_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)
|
||||
|
@ -84,7 +84,13 @@ static char *rna_NlaStrip_path(PointerRNA *ptr)
|
||||
for (nls = nlt->strips.first; nls; nls = nls->next) {
|
||||
if (nls == strip) {
|
||||
/* XXX but if we animate like this, the control will never work... */
|
||||
return BLI_sprintfN("animation_data.nla_tracks[\"%s\"].strips[\"%s\"]", nlt->name, strip->name);
|
||||
char name_esc_nlt[sizeof(nlt->name) * 2];
|
||||
char name_esc_strip[sizeof(strip->name) * 2];
|
||||
|
||||
BLI_strescape(name_esc_nlt, nlt->name, sizeof(name_esc_nlt));
|
||||
BLI_strescape(name_esc_strip, strip->name, sizeof(name_esc_strip));
|
||||
return BLI_sprintfN("animation_data.nla_tracks[\"%s\"].strips[\"%s\"]",
|
||||
name_esc_nlt, name_esc_strip);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1071,8 +1071,10 @@ static StructRNA *rna_Node_refine(struct PointerRNA *ptr)
|
||||
static char *rna_Node_path(PointerRNA *ptr)
|
||||
{
|
||||
bNode *node = (bNode *)ptr->data;
|
||||
char name_esc[sizeof(node->name) * 2];
|
||||
|
||||
return BLI_sprintfN("nodes[\"%s\"]", node->name);
|
||||
BLI_strescape(name_esc, node->name, sizeof(name_esc));
|
||||
return BLI_sprintfN("nodes[\"%s\"]", name_esc);
|
||||
}
|
||||
|
||||
static int rna_Node_poll(bNodeType *ntype, bNodeTree *ntree)
|
||||
@ -1818,16 +1820,19 @@ static char *rna_NodeSocket_path(PointerRNA *ptr)
|
||||
bNodeSocket *sock = (bNodeSocket *)ptr->data;
|
||||
bNode *node;
|
||||
int socketindex;
|
||||
char name_esc[sizeof(node->name) * 2];
|
||||
|
||||
if (!nodeFindNode(ntree, sock, &node, &socketindex))
|
||||
return NULL;
|
||||
|
||||
if (sock->in_out == SOCK_IN)
|
||||
return BLI_sprintfN("nodes[\"%s\"].inputs[%d]", node->name, socketindex);
|
||||
else
|
||||
return BLI_sprintfN("nodes[\"%s\"].outputs[%d]", node->name, socketindex);
|
||||
|
||||
return NULL;
|
||||
BLI_strescape(name_esc, node->name, sizeof(name_esc));
|
||||
|
||||
if (sock->in_out == SOCK_IN) {
|
||||
return BLI_sprintfN("nodes[\"%s\"].inputs[%d]", name_esc, socketindex);
|
||||
}
|
||||
else {
|
||||
return BLI_sprintfN("nodes[\"%s\"].outputs[%d]", name_esc, socketindex);
|
||||
}
|
||||
}
|
||||
|
||||
static IDProperty *rna_NodeSocket_idprops(PointerRNA *ptr, bool create)
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1196,7 +1196,10 @@ static void psys_vg_name_set__internal(PointerRNA *ptr, const char *value, int i
|
||||
static char *rna_ParticleSystem_path(PointerRNA *ptr)
|
||||
{
|
||||
ParticleSystem *psys = (ParticleSystem *)ptr->data;
|
||||
return BLI_sprintfN("particle_systems[\"%s\"]", psys->name);
|
||||
char name_esc[sizeof(psys->name) * 2];
|
||||
|
||||
BLI_strescape(name_esc, psys->name, sizeof(name_esc));
|
||||
return BLI_sprintfN("particle_systems[\"%s\"]", name_esc);
|
||||
}
|
||||
|
||||
static void rna_ParticleSettings_mtex_begin(CollectionPropertyIterator *iter, PointerRNA *ptr)
|
||||
|
@ -133,7 +133,11 @@ static void rna_Pose_IK_update(Main *UNUSED(bmain), Scene *UNUSED(scene), Pointe
|
||||
|
||||
static char *rna_PoseBone_path(PointerRNA *ptr)
|
||||
{
|
||||
return BLI_sprintfN("pose.bones[\"%s\"]", ((bPoseChannel *)ptr->data)->name);
|
||||
bPoseChannel *pchan = ptr->data;
|
||||
char name_esc[sizeof(pchan->name) * 2];
|
||||
|
||||
BLI_strescape(name_esc, pchan->name, sizeof(name_esc));
|
||||
return BLI_sprintfN("pose.bones[\"%s\"]", name_esc);
|
||||
}
|
||||
|
||||
/* shared for actions groups and bone groups */
|
||||
|
@ -1138,7 +1138,10 @@ static void rna_SceneRenderLayer_name_set(PointerRNA *ptr, const char *value)
|
||||
static char *rna_SceneRenderLayer_path(PointerRNA *ptr)
|
||||
{
|
||||
SceneRenderLayer *srl = (SceneRenderLayer *)ptr->data;
|
||||
return BLI_sprintfN("render.layers[\"%s\"]", srl->name);
|
||||
char name_esc[sizeof(srl->name) * 2];
|
||||
|
||||
BLI_strescape(name_esc, srl->name, sizeof(name_esc));
|
||||
return BLI_sprintfN("render.layers[\"%s\"]", name_esc);
|
||||
}
|
||||
|
||||
static int rna_RenderSettings_multiple_engines_get(PointerRNA *UNUSED(ptr))
|
||||
|
@ -342,10 +342,15 @@ static char *rna_SequenceTransform_path(PointerRNA *ptr)
|
||||
Editing *ed = BKE_sequencer_editing_get(scene, FALSE);
|
||||
Sequence *seq = sequence_get_by_transform(ed, ptr->data);
|
||||
|
||||
if (seq && seq->name + 2)
|
||||
return BLI_sprintfN("sequence_editor.sequences_all[\"%s\"].transform", seq->name + 2);
|
||||
else
|
||||
if (seq && seq->name + 2) {
|
||||
char name_esc[(sizeof(seq->name) - 2) * 2];
|
||||
|
||||
BLI_strescape(name_esc, seq->name + 2, sizeof(name_esc));
|
||||
return BLI_sprintfN("sequence_editor.sequences_all[\"%s\"].transform", name_esc);
|
||||
}
|
||||
else {
|
||||
return BLI_strdup("");
|
||||
}
|
||||
}
|
||||
|
||||
static void rna_SequenceTransform_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)
|
||||
@ -387,10 +392,15 @@ static char *rna_SequenceCrop_path(PointerRNA *ptr)
|
||||
Editing *ed = BKE_sequencer_editing_get(scene, FALSE);
|
||||
Sequence *seq = sequence_get_by_crop(ed, ptr->data);
|
||||
|
||||
if (seq && seq->name + 2)
|
||||
return BLI_sprintfN("sequence_editor.sequences_all[\"%s\"].crop", seq->name + 2);
|
||||
else
|
||||
if (seq && seq->name + 2) {
|
||||
char name_esc[(sizeof(seq->name) - 2) * 2];
|
||||
|
||||
BLI_strescape(name_esc, seq->name + 2, sizeof(name_esc));
|
||||
return BLI_sprintfN("sequence_editor.sequences_all[\"%s\"].crop", name_esc);
|
||||
}
|
||||
else {
|
||||
return BLI_strdup("");
|
||||
}
|
||||
}
|
||||
|
||||
static void rna_SequenceCrop_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)
|
||||
@ -501,10 +511,15 @@ static char *rna_Sequence_path(PointerRNA *ptr)
|
||||
/* sequencer data comes from scene...
|
||||
* TODO: would be nice to make SequenceEditor data a datablock of its own (for shorter paths)
|
||||
*/
|
||||
if (seq->name + 2)
|
||||
return BLI_sprintfN("sequence_editor.sequences_all[\"%s\"]", seq->name + 2);
|
||||
else
|
||||
if (seq->name + 2) {
|
||||
char name_esc[(sizeof(seq->name) - 2) * 2];
|
||||
|
||||
BLI_strescape(name_esc, seq->name + 2, sizeof(name_esc));
|
||||
return BLI_sprintfN("sequence_editor.sequences_all[\"%s\"]", name_esc);
|
||||
}
|
||||
else {
|
||||
return BLI_strdup("");
|
||||
}
|
||||
}
|
||||
|
||||
static PointerRNA rna_SequenceEditor_meta_stack_get(CollectionPropertyIterator *iter)
|
||||
@ -754,13 +769,23 @@ static char *rna_SequenceColorBalance_path(PointerRNA *ptr)
|
||||
Sequence *seq = sequence_get_by_colorbalance(ed, ptr->data, &smd);
|
||||
|
||||
if (seq && seq->name + 2) {
|
||||
char name_esc[(sizeof(seq->name) - 2) * 2];
|
||||
|
||||
BLI_strescape(name_esc, seq->name + 2, sizeof(name_esc));
|
||||
|
||||
if (!smd) {
|
||||
/* path to old filter color balance */
|
||||
return BLI_sprintfN("sequence_editor.sequences_all[\"%s\"].color_balance", seq->name + 2);
|
||||
return BLI_sprintfN("sequence_editor.sequences_all[\"%s\"].color_balance", name_esc);
|
||||
}
|
||||
else {
|
||||
/* path to modifier */
|
||||
return BLI_sprintfN("sequence_editor.sequences_all[\"%s\"].modifiers[\"%s\"].color_balance", seq->name + 2, smd->name);
|
||||
char name_esc[(sizeof(seq->name) - 2) * 2];
|
||||
char name_esc_smd[sizeof(smd->name) * 2];
|
||||
|
||||
BLI_strescape(name_esc, seq->name + 2, sizeof(name_esc));
|
||||
BLI_strescape(name_esc_smd, smd->name, sizeof(name_esc_smd));
|
||||
return BLI_sprintfN("sequence_editor.sequences_all[\"%s\"].modifiers[\"%s\"].color_balance",
|
||||
name_esc, name_esc_smd);
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -895,10 +920,18 @@ static char *rna_SequenceModifier_path(PointerRNA *ptr)
|
||||
SequenceModifierData *smd = ptr->data;
|
||||
Sequence *seq = sequence_get_by_modifier(ed, smd);
|
||||
|
||||
if (seq && seq->name + 2)
|
||||
return BLI_sprintfN("sequence_editor.sequences_all[\"%s\"].modifiers[\"%s\"]", seq->name + 2, smd->name);
|
||||
else
|
||||
if (seq && seq->name + 2) {
|
||||
char name_esc[(sizeof(seq->name) - 2) * 2];
|
||||
char name_esc_smd[sizeof(smd->name) * 2];
|
||||
|
||||
BLI_strescape(name_esc, seq->name + 2, sizeof(name_esc));
|
||||
BLI_strescape(name_esc_smd, smd->name, sizeof(name_esc_smd));
|
||||
return BLI_sprintfN("sequence_editor.sequences_all[\"%s\"].modifiers[\"%s\"]",
|
||||
name_esc, name_esc_smd);
|
||||
}
|
||||
else {
|
||||
return BLI_strdup("");
|
||||
}
|
||||
}
|
||||
|
||||
static void rna_SequenceModifier_name_set(PointerRNA *ptr, const char *value)
|
||||
|
@ -99,24 +99,30 @@ static char *rna_SmokeDomainSettings_path(PointerRNA *ptr)
|
||||
{
|
||||
SmokeDomainSettings *settings = (SmokeDomainSettings *)ptr->data;
|
||||
ModifierData *md = (ModifierData *)settings->smd;
|
||||
char name_esc[sizeof(md->name) * 2];
|
||||
|
||||
return BLI_sprintfN("modifiers[\"%s\"].domain_settings", md->name);
|
||||
BLI_strescape(name_esc, md->name, sizeof(name_esc));
|
||||
return BLI_sprintfN("modifiers[\"%s\"].domain_settings", name_esc);
|
||||
}
|
||||
|
||||
static char *rna_SmokeFlowSettings_path(PointerRNA *ptr)
|
||||
{
|
||||
SmokeFlowSettings *settings = (SmokeFlowSettings *)ptr->data;
|
||||
ModifierData *md = (ModifierData *)settings->smd;
|
||||
char name_esc[sizeof(md->name) * 2];
|
||||
|
||||
return BLI_sprintfN("modifiers[\"%s\"].flow_settings", md->name);
|
||||
BLI_strescape(name_esc, md->name, sizeof(name_esc));
|
||||
return BLI_sprintfN("modifiers[\"%s\"].flow_settings", name_esc);
|
||||
}
|
||||
|
||||
static char *rna_SmokeCollSettings_path(PointerRNA *ptr)
|
||||
{
|
||||
SmokeCollSettings *settings = (SmokeCollSettings *)ptr->data;
|
||||
ModifierData *md = (ModifierData *)settings->smd;
|
||||
char name_esc[sizeof(md->name) * 2];
|
||||
|
||||
return BLI_sprintfN("modifiers[\"%s\"].coll_settings", md->name);
|
||||
BLI_strescape(name_esc, md->name, sizeof(name_esc));
|
||||
return BLI_sprintfN("modifiers[\"%s\"].coll_settings", name_esc);
|
||||
}
|
||||
|
||||
static int rna_SmokeModifier_density_get_length(PointerRNA *ptr, int length[RNA_MAX_ARRAY_DIMENSION])
|
||||
|
@ -307,10 +307,15 @@ char *rna_TextureSlot_path(PointerRNA *ptr)
|
||||
}
|
||||
|
||||
/* this is a compromise for the remaining cases... */
|
||||
if (mtex->tex)
|
||||
return BLI_sprintfN("texture_slots[\"%s\"]", mtex->tex->id.name + 2);
|
||||
else
|
||||
if (mtex->tex) {
|
||||
char name_esc[(sizeof(mtex->tex->id.name) - 2) * 2];
|
||||
|
||||
BLI_strescape(name_esc, mtex->tex->id.name + 2, sizeof(name_esc));
|
||||
return BLI_sprintfN("texture_slots[\"%s\"]", name_esc);
|
||||
}
|
||||
else {
|
||||
return BLI_strdup("texture_slots[0]");
|
||||
}
|
||||
}
|
||||
|
||||
static int rna_TextureSlot_name_length(PointerRNA *ptr)
|
||||
|
@ -82,9 +82,10 @@ static void rna_tracking_defaultSettings_searchUpdate(Main *UNUSED(bmain), Scene
|
||||
|
||||
static char *rna_trackingTrack_path(PointerRNA *ptr)
|
||||
{
|
||||
MovieTrackingTrack *track = (MovieTrackingTrack *) ptr->data;
|
||||
|
||||
return BLI_sprintfN("tracking.tracks[\"%s\"]", track->name);
|
||||
MovieTrackingTrack *track = (MovieTrackingTrack *)ptr->data;
|
||||
char name_esc[sizeof(track->name) * 2];
|
||||
BLI_strescape(name_esc, track->name, sizeof(name_esc));
|
||||
return BLI_sprintfN("tracking.tracks[\"%s\"]", name_esc);
|
||||
}
|
||||
|
||||
static void rna_trackingTracks_begin(CollectionPropertyIterator *iter, PointerRNA *ptr)
|
||||
|
Loading…
Reference in New Issue
Block a user