Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2010-11-01 10:19:41 +0300
committerCampbell Barton <ideasman42@gmail.com>2010-11-01 10:19:41 +0300
commitdaa4feaaeae4312eb23f66b948b668a7e9dc1959 (patch)
treedabd2bedd213f9fdfbfc31e6710b2913707dfa1f /source/blender/editors/object/object_vgroup.c
parent8bbcef4c7a377045f6b93580efda93eb4adf800d (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.c21
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);