Fix string escaping in override versioning and modifier renaming
This commit is contained in:
@@ -1295,8 +1295,10 @@ static void version_liboverride_rnacollections_insertion_object(Object *object)
|
||||
|
||||
if (object->pose != NULL) {
|
||||
LISTBASE_FOREACH (bPoseChannel *, pchan, &object->pose->chanbase) {
|
||||
char rna_path[FILE_MAXFILE];
|
||||
BLI_snprintf(rna_path, sizeof(rna_path), "pose.bones[\"%s\"].constraints", pchan->name);
|
||||
char rna_path[26 + (sizeof(pchan->name) * 2) + 1];
|
||||
char name_esc[sizeof(pchan->name) * 2];
|
||||
BLI_str_escape(name_esc, pchan->name, sizeof(name_esc));
|
||||
SNPRINTF(rna_path, "pose.bones[\"%s\"].constraints", name_esc);
|
||||
op = BKE_lib_override_library_property_find(liboverride, rna_path);
|
||||
if (op != NULL) {
|
||||
version_liboverride_rnacollections_insertion_object_constraints(&pchan->constraints, op);
|
||||
|
||||
@@ -754,11 +754,13 @@ static char *rna_DashGpencilModifierSegment_path(PointerRNA *ptr)
|
||||
|
||||
BLI_assert(dmd != NULL);
|
||||
|
||||
char name_esc[sizeof(dmd->modifier.name) * 2 + 1];
|
||||
|
||||
char name_esc[sizeof(dmd->modifier.name) * 2];
|
||||
BLI_str_escape(name_esc, dmd->modifier.name, sizeof(name_esc));
|
||||
|
||||
return BLI_sprintfN("grease_pencil_modifiers[\"%s\"].segments[\"%s\"]", name_esc, ds->name);
|
||||
char ds_name_esc[sizeof(ds->name) * 2];
|
||||
BLI_str_escape(ds_name_esc, ds->name, sizeof(ds_name_esc));
|
||||
|
||||
return BLI_sprintfN("grease_pencil_modifiers[\"%s\"].segments[\"%s\"]", name_esc, ds_name_esc);
|
||||
}
|
||||
|
||||
static bool dash_segment_name_exists_fn(void *arg, const char *name)
|
||||
@@ -785,8 +787,11 @@ static void rna_DashGpencilModifierSegment_name_set(PointerRNA *ptr, const char
|
||||
BLI_uniquename_cb(
|
||||
dash_segment_name_exists_fn, ds->dmd, "Segment", '.', ds->name, sizeof(ds->name));
|
||||
|
||||
char prefix[256];
|
||||
sprintf(prefix, "grease_pencil_modifiers[\"%s\"].segments", ds->dmd->modifier.name);
|
||||
char name_esc[sizeof(ds->dmd->modifier.name) * 2];
|
||||
BLI_str_escape(name_esc, ds->dmd->modifier.name, sizeof(name_esc));
|
||||
|
||||
char prefix[36 + sizeof(name_esc) + 1];
|
||||
SNPRINTF(prefix, "grease_pencil_modifiers[\"%s\"].segments", name_esc);
|
||||
|
||||
/* Fix all the animation data which may link to this. */
|
||||
BKE_animdata_fix_paths_rename_all(NULL, prefix, oldname, ds->name);
|
||||
|
||||
Reference in New Issue
Block a user