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:
authorBrecht Van Lommel <brecht@blender.org>2022-04-28 18:10:52 +0300
committerBrecht Van Lommel <brecht@blender.org>2022-04-28 18:36:07 +0300
commit44b318bd226948b71b4e2f65030f4b3440954f02 (patch)
tree3f5079b22b9aa233c3b9d1c6cf0d2d08ba47a9b7 /source/blender/blenkernel/intern/scene.cc
parent853713336f3caad68bd09747ff3c764f8b050cfd (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.cc19
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;
}
}