From 4b9b437dc1acab627b32558dd272ef5e898c2ace Mon Sep 17 00:00:00 2001 From: hneemann Date: Sun, 30 Apr 2017 09:24:41 +0200 Subject: [PATCH] LineBreaker removes multiple line breaks --- src/main/java/de/neemann/gui/LineBreaker.java | 14 ++++++++------ src/test/java/de/neemann/gui/LineBreakerTest.java | 4 +++- 2 files changed, 11 insertions(+), 7 deletions(-) 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.")); }