diff --git a/Changelog.txt b/Changelog.txt index ad3d823f4..b1e30ca11 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -9,6 +9,8 @@ * Add new shortcut for split + auto-br - thx oep42 * Add "Sort by" in "Batch convert" - thx Masina86 * Add image format RhozetHarmonic (only read) - thx Arianna + * Add "Toggle custom surround text with" shortcut - thx HadiSparrow + * Add "Go to next/previous time code from video position" shortcuts - thx faon-92 * IMPROVED: * Update French translation - thx Pierre * Update Hungarian translation - thx Zityi @@ -43,6 +45,9 @@ * Fix minor left/right cropping issue in image export - thx nissansz * Fix possible crash after choosing folder in image export * Fix italic/font issue with DFXP - thx IngunnHelge + * Fix for image export baseline - thx Matt + * Fix cash in "Generate blank video" + * Fix too many {\an1} in SCC 3.6.11 (30th January 2023) diff --git a/src/Test/Logic/SubtitleFormats/SubtitleFormatsTest.cs b/src/Test/Logic/SubtitleFormats/SubtitleFormatsTest.cs index a1ae47e76..87c9527b5 100644 --- a/src/Test/Logic/SubtitleFormats/SubtitleFormatsTest.cs +++ b/src/Test/Logic/SubtitleFormats/SubtitleFormatsTest.cs @@ -858,6 +858,16 @@ Dialogue: Marked=0,0:00:01.00,0:00:03.00,Default,NTP,0000,0000,0000,!Effect," + Assert.IsTrue(text.Contains("Red")); } + [TestMethod] + public void DcinemaSmpteColorAndItalicNoSpaceBeforeAndAfterFont() + { + var target = new DCinemaSmpte2010(); + var subtitle = new Subtitle(); + subtitle.Paragraphs.Add(new Paragraph("Red", 1000, 5000)); + var text = target.ToText(subtitle, "title"); + Assert.IsTrue(text.Contains(">Red<")); + } + #endregion DCinema smpte (.xml) #region DCinema interop (.xml) diff --git a/src/libse/SubtitleFormats/DCinemaSmpte2007.cs b/src/libse/SubtitleFormats/DCinemaSmpte2007.cs index 54415d65e..a566660be 100644 --- a/src/libse/SubtitleFormats/DCinemaSmpte2007.cs +++ b/src/libse/SubtitleFormats/DCinemaSmpte2007.cs @@ -563,6 +563,7 @@ namespace Nikse.SubtitleEdit.Core.SubtitleFormats Errors = "Error validating xml via SMPTE-428-7-2007-DCST.xsd: " + exception.Message; } } + return DCinemaSmpte2010.FixDcsTextSameLine(result); } diff --git a/src/libse/SubtitleFormats/DCinemaSmpte2010.cs b/src/libse/SubtitleFormats/DCinemaSmpte2010.cs index fc7d55de6..f22a59e43 100644 --- a/src/libse/SubtitleFormats/DCinemaSmpte2010.cs +++ b/src/libse/SubtitleFormats/DCinemaSmpte2010.cs @@ -575,11 +575,11 @@ namespace Nikse.SubtitleEdit.Core.SubtitleFormats /// internal static string FixDcsTextSameLine(string xml) { - var index = xml.IndexOf(" 0 && endIndex > 0) { - endIndex = xml.IndexOf("", index, StringComparison.Ordinal); + endIndex = xml.IndexOf("", index, StringComparison.Ordinal); if (endIndex > 0) { var part = xml.Substring(index, endIndex - index); @@ -593,10 +593,24 @@ namespace Nikse.SubtitleEdit.Core.SubtitleFormats part = part.Replace("> <", "><"); } xml = xml.Remove(index, endIndex - index).Insert(index, part); - index = xml.IndexOf("", "") + .Replace("\r", "") + .Replace("\n", "") + .Replace("\r", "") + + .Replace("\r", "") + .Replace("\n", "") + .Replace("\r", "") + .Replace("\n", "") + + .Replace(" ", "") + ; + return xml; } diff --git a/src/libse/SubtitleFormats/DCinemaSmpte2014.cs b/src/libse/SubtitleFormats/DCinemaSmpte2014.cs index 6d19b33d3..ed4ae11d7 100644 --- a/src/libse/SubtitleFormats/DCinemaSmpte2014.cs +++ b/src/libse/SubtitleFormats/DCinemaSmpte2014.cs @@ -568,36 +568,8 @@ namespace Nikse.SubtitleEdit.Core.SubtitleFormats Errors = "Error validating xml via SMPTE-428-7-2014-DCST.xsd: " + exception.Message; } } - return FixDcsTextSameLine(result); - } - /// - /// All space characters present inside the content of a Text element shall be rendered - /// - internal static string FixDcsTextSameLine(string xml) - { - var index = xml.IndexOf(" 0 && endIndex > 0) - { - endIndex = xml.IndexOf("", index, StringComparison.Ordinal); - if (endIndex > 0) - { - var part = xml.Substring(index, endIndex - index); - if (part.Contains(Environment.NewLine)) - { - part = part.Replace(Environment.NewLine, " "); - while (part.Contains(" ")) - { - part = part.Replace(" ", " "); - } - part = part.Replace("> <", "><"); - } - xml = xml.Remove(index, endIndex - index).Insert(index, part); - index = xml.IndexOf("