diff options
author | Brecht Van Lommel <brecht@blender.org> | 2022-04-28 18:10:52 +0300 |
---|---|---|
committer | Brecht Van Lommel <brecht@blender.org> | 2022-04-28 18:36:07 +0300 |
commit | 44b318bd226948b71b4e2f65030f4b3440954f02 (patch) | |
tree | 3f5079b22b9aa233c3b9d1c6cf0d2d08ba47a9b7 /source/blender/blenkernel/intern/scene.cc | |
parent | 853713336f3caad68bd09747ff3c764f8b050cfd (diff) |
Fix T97527: multiview camera suffix not working with more than 4 characters
Thanks to Germano Cavalcante for finding the solution.
Diffstat (limited to 'source/blender/blenkernel/intern/scene.cc')
-rw-r--r-- | source/blender/blenkernel/intern/scene.cc | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/source/blender/blenkernel/intern/scene.cc b/source/blender/blenkernel/intern/scene.cc index 0430269b75a..eed187b1b0a 100644 --- a/source/blender/blenkernel/intern/scene.cc +++ b/source/blender/blenkernel/intern/scene.cc @@ -3215,26 +3215,25 @@ void BKE_scene_multiview_view_prefix_get(Scene *scene, char *r_prefix, const char **r_ext) { - size_t index_act; - const char *suf_act; + const char *unused; const char delims[] = {'.', '\0'}; r_prefix[0] = '\0'; - /* begin of extension */ - index_act = BLI_str_rpartition(name, delims, r_ext, &suf_act); + /* Split filename into base name and extension. */ + const size_t basename_len = BLI_str_rpartition(name, delims, r_ext, &unused); if (*r_ext == nullptr) { return; } - BLI_assert(index_act > 0); - UNUSED_VARS_NDEBUG(index_act); + BLI_assert(basename_len > 0); + /* Split base name into prefix and known suffix. */ LISTBASE_FOREACH (SceneRenderView *, srv, &scene->r.views) { if (BKE_scene_multiview_is_render_view_active(&scene->r, srv)) { - const size_t len = strlen(srv->suffix); - const size_t ext_len = strlen(*r_ext); - if (ext_len >= len && STREQLEN(*r_ext - len, srv->suffix, len)) { - BLI_strncpy(r_prefix, name, strlen(name) - ext_len - len + 1); + const size_t suffix_len = strlen(srv->suffix); + if (basename_len >= suffix_len && + STREQLEN(name + basename_len - suffix_len, srv->suffix, suffix_len)) { + BLI_strncpy(r_prefix, name, basename_len - suffix_len + 1); break; } } |