diff --git a/src/main/java/de/neemann/gui/LineBreaker.java b/src/main/java/de/neemann/gui/LineBreaker.java index a5ae7394d..6a997d4cf 100644 --- a/src/main/java/de/neemann/gui/LineBreaker.java +++ b/src/main/java/de/neemann/gui/LineBreaker.java @@ -70,7 +70,6 @@ public class LineBreaker { if (preserveLineBreaks) { addWord(word); lineBreak(); - isFirst = true; break; } case '\r': @@ -108,11 +107,14 @@ public class LineBreaker { } private void lineBreak() { - outText.append('\n'); - for (int j = 0; j < indent; j++) - outText.append(" "); - pos = indent; - containsLineBreak = true; + if (!isFirst) { + outText.append('\n'); + for (int j = 0; j < indent; j++) + outText.append(" "); + pos = indent; + containsLineBreak = true; + isFirst = true; + } } /** diff --git a/src/test/java/de/neemann/gui/LineBreakerTest.java b/src/test/java/de/neemann/gui/LineBreakerTest.java index fb483330c..9545b7fdf 100644 --- a/src/test/java/de/neemann/gui/LineBreakerTest.java +++ b/src/test/java/de/neemann/gui/LineBreakerTest.java @@ -24,7 +24,9 @@ public class LineBreakerTest extends TestCase { public void testBreakLinesPreserve() throws Exception { - assertEquals("this is a\ntest string", new LineBreaker(60).preserveContainedLineBreaks().breakLines("this is a\n test string")); + assertEquals("this is a\ntest string", new LineBreaker(60).preserveContainedLineBreaks().breakLines("this is a\ntest string")); + assertEquals("this is a\ntest string", new LineBreaker(60).preserveContainedLineBreaks().breakLines("this is a \n test string")); + assertEquals("this is a\ntest string\n", new LineBreaker(60).preserveContainedLineBreaks().breakLines("\n\nthis is a\n\ntest string\n\n\n")); assertEquals("this is a\ntest string. This is\na test string.", new LineBreaker(20).preserveContainedLineBreaks().breakLines("this is a\n test string. This is a test string.")); }