[gnome-subtitles] Fixed parsing and writing of some subtitle formats (fixes bug #643389, based on a patch from Pawel57
- From: Pedro Daniel da Rocha Melo e Castro <pcastro src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-subtitles] Fixed parsing and writing of some subtitle formats (fixes bug #643389, based on a patch from Pawel57
- Date: Sun, 11 Sep 2011 21:37:38 +0000 (UTC)
commit 7a0e1c6b1435f86490e92edc7983b15b1b60a767
Author: Pedro Castro <pedro gnomesubtitles org>
Date: Sun Sep 11 22:29:59 2011 +0100
Fixed parsing and writing of some subtitle formats (fixes bug #643389, based on a patch from Pawel57)
.../SubtitleFormatKaraokeLyricsLRC.cs | 6 +++---
.../IO/SubtitleFormats/SubtitleFormatMPSub.cs | 4 ++--
.../IO/SubtitleFormats/SubtitleFormatSofni.cs | 6 +++---
.../SubtitleFormats/SubtitleFormatSubCreator1x.cs | 8 ++++----
.../SubtitleFormatViPlaySubtitleFile.cs | 10 +++++-----
5 files changed, 17 insertions(+), 17 deletions(-)
---
diff --git a/src/SubLib/IO/SubtitleFormats/SubtitleFormatKaraokeLyricsLRC.cs b/src/SubLib/IO/SubtitleFormats/SubtitleFormatKaraokeLyricsLRC.cs
index 990e0b0..c373d9a 100644
--- a/src/SubLib/IO/SubtitleFormats/SubtitleFormatKaraokeLyricsLRC.cs
+++ b/src/SubLib/IO/SubtitleFormats/SubtitleFormatKaraokeLyricsLRC.cs
@@ -1,6 +1,6 @@
/*
* This file is part of SubLib.
- * Copyright (C) 2007-2008 Pedro Castro
+ * Copyright (C) 2007-2008,2011 Pedro Castro
*
* SubLib is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -34,9 +34,9 @@ internal class SubtitleFormatKaraokeLyricsLRC : SubtitleFormat {
lineBreak = "|"; // It does not manage line breaks, but still using this char as a separator
- format = @"\[\s*\d+:\d+.\d+\s*\].+\n+\[\s*\d+:\d+.\d+\s*\]";
+ format = @"\[\s*\d+:\d+[.,]\d+\s*\].+\n+\[\s*\d+:\d+[.,]\d+\s*\]";
- subtitleIn = @"\[\s*(?<StartMinutes>\d+)\s*:\s*(?<StartSeconds>\d+)\s*.\s*(?<StartCentiseconds>\d+)\s*\]\s*(?<Text>.*)\n+\[\s*(?<EndMinutes>\d+)\s*:\s*(?<EndSeconds>\d+)\s*.\s*(?<EndCentiseconds>\d+)\s*\]";
+ subtitleIn = @"\[\s*(?<StartMinutes>\d+)\s*:\s*(?<StartSeconds>\d+)\s*[.,]\s*(?<StartCentiseconds>\d+)\s*\]\s*(?<Text>.*)\n+\[\s*(?<EndMinutes>\d+)\s*:\s*(?<EndSeconds>\d+)\s*[.,]\s*(?<EndCentiseconds>\d+)\s*\]";
subtitleOut = "[<<StartMinutes>>:<<StartSeconds>>.<<StartCentiseconds>>]<<Text>>\n" +
"[<<EndMinutes>>:<<EndSeconds>>.<<EndCentiseconds>>]";
diff --git a/src/SubLib/IO/SubtitleFormats/SubtitleFormatMPSub.cs b/src/SubLib/IO/SubtitleFormats/SubtitleFormatMPSub.cs
index 73f02e5..ec8c3a6 100644
--- a/src/SubLib/IO/SubtitleFormats/SubtitleFormatMPSub.cs
+++ b/src/SubLib/IO/SubtitleFormats/SubtitleFormatMPSub.cs
@@ -32,9 +32,9 @@ internal class SubtitleFormatMPSub : SubtitleFormat {
extensions = new string[] { "sub" };
lineBreak = "\n";
- format = @"TITLE\s*=.*\n(.*\n)*FORMAT\s*=.*\n(.*\n)*[ \f\r\t\v]*\n\d+(\.\d+)? \d+(\.\d+)?\s+.+";
+ format = @"TITLE\s*=.*\n(.*\n)*FORMAT\s*=.*\n(.*\n)*[ \f\r\t\v]*\n\d+([.,]\d+)? \d+([.,]\d+)?\s+.+";
- subtitleInTimesMode = @"(?<StartElapsedTime>\d+(\.\d*)?)[^\d\n](?<EndElapsedTime>\d+(\.\d*)?).*(?<Text>(\n?.*(?!\n[ \f\r\t\v]*\n))*.)";
+ subtitleInTimesMode = @"(?<StartElapsedTime>\d+([.,]\d*)?)[^\d\n](?<EndElapsedTime>\d+([.,]\d*)?).*(?<Text>(\n?.*(?!\n[ \f\r\t\v]*\n))*.)";
subtitleInFramesMode = @"(?<StartElapsedFrames>\d+)[^\d\n](?<EndElapsedFrames>\d+).*(?<Text>(\n?.*(?!\n[ \f\r\t\v]*\n))*.)";
subtitleOutTimesMode = "<<StartElapsedTime>> <<EndElapsedTime>>\n<<Text>>\n";
diff --git a/src/SubLib/IO/SubtitleFormats/SubtitleFormatSofni.cs b/src/SubLib/IO/SubtitleFormats/SubtitleFormatSofni.cs
index d6eca63..fe5261c 100644
--- a/src/SubLib/IO/SubtitleFormats/SubtitleFormatSofni.cs
+++ b/src/SubLib/IO/SubtitleFormats/SubtitleFormatSofni.cs
@@ -1,6 +1,6 @@
/*
* This file is part of SubLib.
- * Copyright (C) 2007-2008 Pedro Castro
+ * Copyright (C) 2007-2008,2011 Pedro Castro
*
* SubLib is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -32,13 +32,13 @@ internal class SubtitleFormatSofni : SubtitleFormat {
extensions = new string[] { "sub" };
lineBreak = "\n";
- format = @".+\s+\d+:\d+:\d+.\d+\\\d+:\d+:\d+.\d+";
+ format = @".+\s+\d+:\d+:\d+[.,]\d+\\\d+:\d+:\d+[.,]\d+";
subtitleIn = @"(?<Text>.+(\n.+)?)\n+(?<StartHours>\d+)\s*:\s*(?<StartMinutes>\d+)\s*:\s*(?<StartSeconds>\d+)\s*.\s*(?<StartCentiseconds>\d+)\\(?<EndHours>\d+)\s*:\s*(?<EndMinutes>\d+)\s*:\s*(?<EndSeconds>\d+)\s*.\s*(?<EndCentiseconds>\d+)";
subtitleOut = "<<Text>>\n" +
"<<StartHours>>:<<StartMinutes>>:<<StartSeconds>>.<<StartCentiseconds>>" +
- "\\ <<EndHours>>:<<EndMinutes>>:<<EndSeconds>>.<<EndCentiseconds>>\n";
+ "\\<<EndHours>>:<<EndMinutes>>:<<EndSeconds>>.<<EndCentiseconds>>";
}
}
diff --git a/src/SubLib/IO/SubtitleFormats/SubtitleFormatSubCreator1x.cs b/src/SubLib/IO/SubtitleFormats/SubtitleFormatSubCreator1x.cs
index 3344103..ddf7700 100644
--- a/src/SubLib/IO/SubtitleFormats/SubtitleFormatSubCreator1x.cs
+++ b/src/SubLib/IO/SubtitleFormats/SubtitleFormatSubCreator1x.cs
@@ -1,6 +1,6 @@
/*
* This file is part of SubLib.
- * Copyright (C) 2007-2008 Pedro Castro
+ * Copyright (C) 2007-2008,2011 Pedro Castro
*
* SubLib is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -32,12 +32,12 @@ internal class SubtitleFormatSubCreator1x : SubtitleFormat {
extensions = new string[] { "txt" };
lineBreak = "|";
- format = @"\d+:\d+:\d+.\d:\s*.+\s+\d+:\d+:\d+.\d:";
+ format = @"\d+:\d+:\d+[.,]\d:\s*.+\s+\d+:\d+:\d+[.,]\d:";
- subtitleIn = @"(?<StartHours>\d+):(?<StartMinutes>\d+):(?<StartSeconds>\d+).(?<StartDeciseconds>\d+):\s*(?<Text>.+)\s+(?<EndHours>\d+):(?<EndMinutes>\d+):(?<EndSeconds>\d+).(?<EndDeciseconds>\d+)";
+ subtitleIn = @"(?<StartHours>\d+):(?<StartMinutes>\d+):(?<StartSeconds>\d+)[.,](?<StartDeciseconds>\d+):\s*(?<Text>.+)\s+(?<EndHours>\d+):(?<EndMinutes>\d+):(?<EndSeconds>\d+)[.,](?<EndDeciseconds>\d+):";
subtitleOut = "<<StartHours>>:<<StartMinutes>>:<<StartSeconds>>.<<StartDeciseconds>>:" +
- "<<Text>>\n<<EndHours>>:<<EndMinutes>>:<<EndSeconds>>.<<EndDeciseconds>>:\n";
+ "<<Text>>\n<<EndHours>>:<<EndMinutes>>:<<EndSeconds>>.<<EndDeciseconds>>:";
}
}
diff --git a/src/SubLib/IO/SubtitleFormats/SubtitleFormatViPlaySubtitleFile.cs b/src/SubLib/IO/SubtitleFormats/SubtitleFormatViPlaySubtitleFile.cs
index 158a82b..4d33beb 100644
--- a/src/SubLib/IO/SubtitleFormats/SubtitleFormatViPlaySubtitleFile.cs
+++ b/src/SubLib/IO/SubtitleFormats/SubtitleFormatViPlaySubtitleFile.cs
@@ -1,6 +1,6 @@
/*
* This file is part of SubLib.
- * Copyright (C) 2007-2008 Pedro Castro
+ * Copyright (C) 2007-2008,2011 Pedro Castro
*
* SubLib is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -33,14 +33,14 @@ internal class SubtitleFormatViPlaySubtitleFile : SubtitleFormat {
extensions = new string[] { "vsf" };
lineBreak = "|";
- format = @"\{\* VIPLAY SUBTITLE FILE \*\}\s*\d+:\d+:\d+,\d+\s*-\s*\d+:\d+:\d+,\d+=.+";
+ format = @"\{\* VIPLAY SUBTITLE FILE \*\}\s*\d+:\d+:\d+[,.]\d+\s*-\s*\d+:\d+:\d+[,.]\d+=.+";
- subtitleIn = @"(?<StartHours>\d+)\s*:\s*(?<StartMinutes>\d+)\s*:\s*(?<StartSeconds>\d+)\s*,\s*(?<StartMilliseconds>\d+)\s*-\s*(?<EndHours>\d+)\s*:\s*(?<EndMinutes>\d+)\s*:\s*(?<EndSeconds>\d+)\s*,\s*(?<EndMilliseconds>\d+)\s*=\s*(?<Text>.*)";
+ subtitleIn = @"(?<StartHours>\d+)\s*:\s*(?<StartMinutes>\d+)\s*:\s*(?<StartSeconds>\d+)\s*[,.]\s*(?<StartMilliseconds>\d+)\s*-\s*(?<EndHours>\d+)\s*:\s*(?<EndMinutes>\d+)\s*:\s*(?<EndSeconds>\d+)\s*[,.]\s*(?<EndMilliseconds>\d+)\s*=\s*(?<Text>.*)";
subtitleOut = "<<StartHours>>:<<StartMinutes>>:<<StartSeconds>>,<<StartMilliseconds>>-" +
- "<<EndHours>>:<<EndMinutes>>:<<EndSeconds>>,<<EndMilliseconds>>=<<Text>>\n";
+ "<<EndHours>>:<<EndMinutes>>:<<EndSeconds>>,<<EndMilliseconds>>=<<Text>>";
- bodyBeginOut = "{* VIPLAY SUBTITLE FILE *}";
+ bodyBeginOut = "{* VIPLAY SUBTITLE FILE *}\n";
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]