summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2018-02-06 20:03:59 +0000
committerCarl Hetherington <cth@carlh.net>2018-02-06 20:03:59 +0000
commitfa7bc921f3fdf492dd8742bb5b778c7e4b38d98f (patch)
tree1c3fd23a425ed2d6ef5125657f2f2258b100f851 /src/lib
parenta81cf2fed139a04882d9d1a735272d05a4639cf1 (diff)
Fix failure to parse subtitle files with OS X line endings.
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/text_subtitle.cc7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/lib/text_subtitle.cc b/src/lib/text_subtitle.cc
index 2de815459..a3c3975e4 100644
--- a/src/lib/text_subtitle.cc
+++ b/src/lib/text_subtitle.cc
@@ -43,6 +43,13 @@ TextSubtitle::TextSubtitle (shared_ptr<const TextSubtitleContent> content)
{
Data in (content->path (0));
+ /* Fix OS X line endings */
+ for (int i = 0; i < in.size(); ++i) {
+ if (in.data()[i] == '\r' && ((i == in.size() - 1) || in.data()[i + 1] != '\n')) {
+ in.data()[i] = '\n';
+ }
+ }
+
UErrorCode status = U_ZERO_ERROR;
UCharsetDetector* detector = ucsdet_open (&status);
ucsdet_setText (detector, reinterpret_cast<const char *> (in.data().get()), in.size(), &status);