summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2023-03-04 21:57:22 +0100
committerCarl Hetherington <cth@carlh.net>2023-03-04 21:57:22 +0100
commit42ff0632f46a8b1918f16035baa67972eb221282 (patch)
tree004228aecc35fd676d16f68b1d0e2283ef635813
parent5be50d30b8c5360e0b197b708133165095feefc4 (diff)
Support single quotes in font color tags.v1.6.44
-rw-r--r--src/subrip_reader.cc2
-rw-r--r--test/subrip_reader_test.cc12
2 files changed, 13 insertions, 1 deletions
diff --git a/src/subrip_reader.cc b/src/subrip_reader.cc
index 268582d..c0ef21c 100644
--- a/src/subrip_reader.cc
+++ b/src/subrip_reader.cc
@@ -261,7 +261,7 @@ SubripReader::convert_line (string t, RawSubtitle& p)
p.underline = false;
} else if (has_next(t, i, "<font") || has_next(t, i, "<Font")) {
maybe_content (p);
- boost::regex re (".*color=\"?#([[:xdigit:]]+)\"?");
+ boost::regex re (".*color=[\"\']?#([[:xdigit:]]+)[\"\']?");
boost::smatch match;
string tag;
while (i < t.size() && t[i] != '>') {
diff --git a/test/subrip_reader_test.cc b/test/subrip_reader_test.cc
index dc9698d..8f23abb 100644
--- a/test/subrip_reader_test.cc
+++ b/test/subrip_reader_test.cc
@@ -335,6 +335,17 @@ BOOST_AUTO_TEST_CASE (subrip_reader_convert_line_test)
BOOST_CHECK_CLOSE (r._subs.front().colour.b, 1, 0.1);
r._subs.clear ();
+ /* single quotes are apparently also allowed */
+ rs = sub::RawSubtitle();
+ r.convert_line("<font color=\'#ff00ff\'>simple color</font>", rs);
+ BOOST_CHECK_EQUAL(r._subs.size(), 1);
+ BOOST_CHECK_EQUAL(r._subs.front().text, "simple color");
+ BOOST_CHECK_EQUAL(r._subs.front().bold, false);
+ BOOST_CHECK_CLOSE(r._subs.front().colour.r, 1, 0.1);
+ BOOST_CHECK(fabs(r._subs.front().colour.g) < 0.01);
+ BOOST_CHECK_CLOSE(r._subs.front().colour.b, 1, 0.1);
+ r._subs.clear();
+
rs = sub::RawSubtitle();
r.convert_line ("<font color=\"#FF00FF\">simple color in capitals</font>", rs);
BOOST_CHECK_EQUAL (r._subs.size(), 1);
@@ -616,6 +627,7 @@ BOOST_AUTO_TEST_CASE (subrip_reader_test5)
BOOST_CHECK_CLOSE (r._subs.front().colour.b, 3.0 / 255, 0.1);
}
+
/** Test alignment */
BOOST_AUTO_TEST_CASE (subrip_reader_test6)
{