From: Carl Hetherington Date: Fri, 22 Dec 2023 18:37:12 +0000 (+0100) Subject: Make SSA reader more tolerant of missing styles (DoM #2685). X-Git-Tag: v1.6.45 X-Git-Url: https://git.carlh.net/gitweb/?a=commitdiff_plain;h=refs%2Ftags%2Fv1.6.45;hp=42ff0632f46a8b1918f16035baa67972eb221282;p=libsub.git Make SSA reader more tolerant of missing styles (DoM #2685). --- diff --git a/src/ssa_reader.cc b/src/ssa_reader.cc index dad0f26..416d317 100644 --- a/src/ssa_reader.cc +++ b/src/ssa_reader.cc @@ -488,8 +488,16 @@ SSAReader::read (function ()> get_line) "they seem to mean literally nothing". Go figure... */ trim_left_if (event[i], boost::is_any_of ("*")); - SUB_ASSERT (styles.find(event[i]) != styles.end()); - style = styles[event[i]]; + /* Use the specified style unless it's not defined, in which case use + * "Default" (if it exists). + */ + if (styles.find(event[i]) != styles.end()) { + style = styles[event[i]]; + } else if (styles.find("Default") != styles.end()) { + style = styles["Default"]; + } else { + continue; + } sub.font = style->font_name; sub.font_size = FontSize::from_proportional(static_cast(style->font_size) / play_res_y); sub.colour = style->primary_colour; diff --git a/test/ssa_reader_test.cc b/test/ssa_reader_test.cc index 3413e96..71eb03a 100644 --- a/test/ssa_reader_test.cc +++ b/test/ssa_reader_test.cc @@ -173,6 +173,7 @@ BOOST_AUTO_TEST_CASE (ssa_reader_test2) test ("dcpsubtest-en.ssa"); test ("dcpsubtest-en.ssa"); test ("W_GERMAN_SUBS_grey.ass"); + test ("XxxHolic (2022) ITA 071223.ass"); } #define SUB_START(f, t) \