diff options
| author | Carl Hetherington <cth@carlh.net> | 2025-12-19 15:15:17 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2025-12-19 15:15:17 +0100 |
| commit | 054e20e8fbc04a9a7bb78b2c4a52f9ca9c817df2 (patch) | |
| tree | 80264d4cdcf5ff7196b4d545272da293cf6d6f58 | |
| parent | 127ba4071318ed2bee545bf983792ece369b5111 (diff) | |
Fix truncation of ISDCF name parts that have had things substituted (#3112).
| -rw-r--r-- | src/lib/film.cc | 4 | ||||
| -rw-r--r-- | test/isdcf_name_test.cc | 10 |
2 files changed, 11 insertions, 3 deletions
diff --git a/src/lib/film.cc b/src/lib/film.cc index 0e9c096fc..1b45d81d4 100644 --- a/src/lib/film.cc +++ b/src/lib/film.cc @@ -972,9 +972,7 @@ Film::isdcf_name(bool if_created_now) const } } - fixed_name = fixed_name.substr(0, Config::instance()->isdcf_name_part_length()); - - isdcf_name += careful_string_filter(fixed_name, L"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-"); + isdcf_name += careful_string_filter(fixed_name, L"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-").substr(0, Config::instance()->isdcf_name_part_length()); if (dcp_content_type()) { isdcf_name += "_" + dcp_content_type()->isdcf_name(); diff --git a/test/isdcf_name_test.cc b/test/isdcf_name_test.cc index f03ece4e7..2ccfd5312 100644 --- a/test/isdcf_name_test.cc +++ b/test/isdcf_name_test.cc @@ -291,3 +291,13 @@ BOOST_AUTO_TEST_CASE(isdcf_name_with_closed_subtitles) BOOST_CHECK_EQUAL(film->isdcf_name(false), "Hello_TST-1_F_XX-DE_MOS_2K_20230118_SMPTE_OV"); } + + +BOOST_AUTO_TEST_CASE(isdcf_name_with_accent) +{ + auto film = new_test_film("isdcf_name_test_with_accent"); + film->set_isdcf_date(boost::gregorian::date(2023, boost::gregorian::Jan, 18)); + film->set_name("BezüglichMeineKatze"); + BOOST_CHECK_EQUAL(film->isdcf_name(false), "BezuglichMeine_TST-1_F_XX-XX_MOS_2K_20230118_SMPTE_OV"); +} + |
