From f06acc5d2b9fa65639788fb011c3ada104400083 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Fri, 22 Dec 2023 19:37:12 +0100 Subject: [PATCH] Make SSA reader more tolerant of missing styles (DoM #2685). --- src/ssa_reader.cc | 12 ++++++++++-- test/ssa_reader_test.cc | 1 + 2 files changed, 11 insertions(+), 2 deletions(-) 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) \ -- 2.30.2