diff --git a/libse/Utilities.cs b/libse/Utilities.cs
index cf95bac8b..dd68a33cd 100644
--- a/libse/Utilities.cs
+++ b/libse/Utilities.cs
@@ -651,21 +651,37 @@ namespace Nikse.SubtitleEdit.Core
public static string RemoveLineBreaks(string input)
{
var s = HtmlUtil.FixUpperTags(input);
+
+ s = s.Replace(" " + Environment.NewLine + "", Environment.NewLine);
+ s = s.Replace("" + Environment.NewLine + " ", Environment.NewLine);
+ s = s.Replace("" + Environment.NewLine + "", Environment.NewLine);
+
+ s = s.Replace(Environment.NewLine + " ", "" + Environment.NewLine);
+ s = s.Replace(Environment.NewLine + " ", "" + Environment.NewLine);
+ s = s.Replace(Environment.NewLine + " ", "" + Environment.NewLine);
+ s = s.Replace(Environment.NewLine + " ", "" + Environment.NewLine);
+
+ s = s.Replace(" " + Environment.NewLine + "", "" + Environment.NewLine);
+ s = s.Replace(" " + Environment.NewLine + "", "" + Environment.NewLine);
+ s = s.Replace(" " + Environment.NewLine + "", "" + Environment.NewLine);
+ s = s.Replace(" " + Environment.NewLine + "", "" + Environment.NewLine);
+
s = s.Replace(Environment.NewLine + "", "" + Environment.NewLine);
s = s.Replace(Environment.NewLine + "", "" + Environment.NewLine);
s = s.Replace(Environment.NewLine + "", "" + Environment.NewLine);
s = s.Replace(Environment.NewLine + "", "" + Environment.NewLine);
- s = s.Replace(" " + Environment.NewLine + "", " ");
- s = s.Replace("" + Environment.NewLine + " ", " ");
- s = s.Replace("" + Environment.NewLine + "", " ");
- s = s.Replace(" " + Environment.NewLine + " ", " ");
- s = s.Replace(Environment.NewLine + " ", " ");
- s = s.Replace(" " + Environment.NewLine + " ", " ");
+
+ while (s.Contains(" " + Environment.NewLine))
+ {
+ s = s.Replace(" " + Environment.NewLine, Environment.NewLine);
+ }
+
+ while (s.Contains(Environment.NewLine + " "))
+ {
+ s = s.Replace(Environment.NewLine + " ", Environment.NewLine);
+ }
+
s = s.Replace(Environment.NewLine, " ");
- s = s.Replace(" ", " ");
- s = s.Replace(" ", " ");
- s = s.Replace(" ", " ");
- s = s.Replace(" ", " ");
return s.Trim();
}
diff --git a/src/Test/Logic/UtilitiesTest.cs b/src/Test/Logic/UtilitiesTest.cs
index 5ca383420..e611ef669 100644
--- a/src/Test/Logic/UtilitiesTest.cs
+++ b/src/Test/Logic/UtilitiesTest.cs
@@ -228,7 +228,7 @@ namespace Test.Logic
var old = Configuration.Settings.General.MaxNumberOfLines;
Configuration.Settings.General.MaxNumberOfLines = 3;
Configuration.Settings.Tools.AutoBreakUsePixelWidth = false;
- const string s1 = "Follow him. Day and night wherever he goes and goes and goes and goes and goes again!";
+ const string s1 = "Follow him. Day and night wherever he goes and goes and goes and goes and goes again!";
string s2 = Utilities.AutoBreakLine(s1);
Configuration.Settings.General.MaxNumberOfLines = old;
Assert.AreEqual("Follow him. Day and night wherever he goes" + Environment.NewLine + "and goes and goes and goes and goes again!", s2);
@@ -680,35 +680,35 @@ namespace Test.Logic
public void RemoveLineBreaks1()
{
string result = Utilities.RemoveLineBreaks("Hey" + Environment.NewLine + "you!");
- Assert.AreEqual(result, "Hey you!");
+ Assert.AreEqual("Hey you!", result);
}
[TestMethod]
public void RemoveLineBreaks2()
{
string result = Utilities.RemoveLineBreaks("Foobar " + Environment.NewLine + " foobar.");
- Assert.AreEqual(result, "Foobar foobar.");
+ Assert.AreEqual("Foobar foobar.", result);
}
[TestMethod]
public void RemoveLineBreaks3()
{
string result = Utilities.RemoveLineBreaks("Foobar " + Environment.NewLine + "foobar.");
- Assert.AreEqual(result, "Foobar foobar.");
+ Assert.AreEqual("Foobar foobar.", result);
}
[TestMethod]
public void RemoveLineBreaks4()
{
string result = Utilities.RemoveLineBreaks("Hey" + Environment.NewLine + "you!");
- Assert.AreEqual(result, "Hey you!");
+ Assert.AreEqual("Hey you!", result);
}
[TestMethod]
public void RemoveLineBreaks5()
{
string result = Utilities.RemoveLineBreaks("Foobar" + Environment.NewLine + "");
- Assert.AreEqual(result, "Foobar");
+ Assert.AreEqual( "Foobar", result);
}
[TestMethod]