diff options
author | Campbell Barton <ideasman42@gmail.com> | 2010-11-01 10:19:41 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2010-11-01 10:19:41 +0300 |
commit | daa4feaaeae4312eb23f66b948b668a7e9dc1959 (patch) | |
tree | dabd2bedd213f9fdfbfc31e6710b2913707dfa1f /source/blender/editors/object/object_vgroup.c | |
parent | 8bbcef4c7a377045f6b93580efda93eb4adf800d (diff) |
bugfix [#24477] Can easily create bones with duplicate names
- fixed this error 7 different functions (deform groups, uv layers & similar).
- support for numbers over 999.
- renamed splitIDname() to BLI_split_name_num(), moved to BLI_path_utils
Diffstat (limited to 'source/blender/editors/object/object_vgroup.c')
-rw-r--r-- | source/blender/editors/object/object_vgroup.c | 21 |
1 files changed, 6 insertions, 15 deletions
diff --git a/source/blender/editors/object/object_vgroup.c b/source/blender/editors/object/object_vgroup.c index 015fab05828..dd4864f928f 100644 --- a/source/blender/editors/object/object_vgroup.c +++ b/source/blender/editors/object/object_vgroup.c @@ -596,7 +596,7 @@ static void vgroup_select_verts(Object *ob, int select) static void vgroup_duplicate(Object *ob) { bDeformGroup *dg, *cdg; - char name[32], s[32]; + char name[sizeof(dg->name)]; MDeformWeight *org, *cpy; MDeformVert *dvert, **dvert_array=NULL; int i, idg, icdg, dvert_tot=0; @@ -605,26 +605,17 @@ static void vgroup_duplicate(Object *ob) if(!dg) return; - if(strstr(dg->name, "_copy")) { - BLI_strncpy(name, dg->name, 32); /* will be renamed _copy.001... etc */ + if(!strstr(dg->name, "_copy")) { + BLI_snprintf(name, sizeof(name), "%s_copy", dg->name); } else { - BLI_snprintf(name, 32, "%s_copy", dg->name); - while(defgroup_find_name(ob, name)) { - if((strlen(name) + 6) > 32) { - if (G.f & G_DEBUG) - printf("Internal error: the name for the new vertex group is > 32 characters"); - return; - } - strcpy(s, name); - BLI_snprintf(name, 32, "%s_copy", s); - } - } + BLI_snprintf(name, sizeof(name), "%s", dg->name); + } cdg = defgroup_duplicate(dg); strcpy(cdg->name, name); defgroup_unique_name(cdg, ob); - + BLI_addtail(&ob->defbase, cdg); idg = (ob->actdef-1); |