diff options
author | Campbell Barton <campbell@blender.org> | 2022-04-26 06:46:04 +0300 |
---|---|---|
committer | Campbell Barton <campbell@blender.org> | 2022-04-26 06:46:04 +0300 |
commit | 07e2bd443ea2b3aadb78bcbb8b74950917a0181d (patch) | |
tree | d3b99acbeaf96b4d04cec82b1e27ca96480157cc | |
parent | 3221766820c60057f7cc2e8e0b1c30f9b895c8de (diff) |
Fix bone "auto-name by axis" failure to clip long names
Failure to clip automatic-names meant named could end with a "." for e.g.
Error in [0] meant the clipped text was copied then
immediately overwritten.
[0]: 354e6b9c189bb6cea57577ba3a8e7fb7ca28a796
-rw-r--r-- | source/blender/blenkernel/intern/armature.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/source/blender/blenkernel/intern/armature.c b/source/blender/blenkernel/intern/armature.c index 0ed322d386c..dfe3d9cc310 100644 --- a/source/blender/blenkernel/intern/armature.c +++ b/source/blender/blenkernel/intern/armature.c @@ -813,11 +813,9 @@ bool bone_autoside_name( } } - if ((MAXBONENAME - len) < strlen(extension) + 1) { /* add 1 for the '.' */ - strncpy(name, basename, len - strlen(extension)); - } - - BLI_snprintf(name, MAXBONENAME, "%s.%s", basename, extension); + /* Subtract 1 from #MAXBONENAME for the null byte. Add 1 to the extension for the '.' */ + const int basename_maxlen = (MAXBONENAME - 1) - (1 + strlen(extension)); + BLI_snprintf(name, MAXBONENAME, "%.*s.%s", basename_maxlen, basename, extension); return true; } |