You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by sr...@apache.org on 2024/09/05 12:53:45 UTC
(plc4x) 03/03: fix(plc4j/spi): ascii box writer tab and cr fixes
This is an automated email from the ASF dual-hosted git repository.
sruehl pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git
commit 14696d778ccb56463b4ca36c7f424c91da287ff4
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Thu Sep 5 14:53:28 2024 +0200
fix(plc4j/spi): ascii box writer tab and cr fixes
---
.../plc4x/java/spi/utils/ascii/AsciiBoxWriter.java | 1 +
.../java/spi/utils/ascii/AsciiBoxWriterTest.java | 28 ++++++++++++++++++++++
2 files changed, 29 insertions(+)
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/utils/ascii/AsciiBoxWriter.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/utils/ascii/AsciiBoxWriter.java
index 54c9b269ba..8bf7d1e02f 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/utils/ascii/AsciiBoxWriter.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/utils/ascii/AsciiBoxWriter.java
@@ -95,6 +95,7 @@ public class AsciiBoxWriter {
Objects.requireNonNull(data);
// Convert dos2unix as that messes with box rendering
data = data.replaceAll("\r\n", "\n");
+ data = data.replaceAll("\t", " ");
AsciiBox rawBox = new AsciiBox(this, data);
int longestLine = rawBox.width();
if (charWidth < longestLine) {
diff --git a/plc4j/spi/src/test/java/org/apache/plc4x/java/spi/utils/ascii/AsciiBoxWriterTest.java b/plc4j/spi/src/test/java/org/apache/plc4x/java/spi/utils/ascii/AsciiBoxWriterTest.java
index 1fd26341f8..ba6b80d1b4 100644
--- a/plc4j/spi/src/test/java/org/apache/plc4x/java/spi/utils/ascii/AsciiBoxWriterTest.java
+++ b/plc4j/spi/src/test/java/org/apache/plc4x/java/spi/utils/ascii/AsciiBoxWriterTest.java
@@ -300,6 +300,34 @@ class AsciiBoxWriterTest {
"╚═════════════════════════════════════════════╝";
assertEquals(new AsciiBox(want), AsciiBoxWriter.DEFAULT.boxString(name, data, charWidth));
}
+
+ @Test
+ void simpleBoxWithTabs(){
+ String name = "tabs";
+ String data = "a\n\tb\n\t\t\t\t\tc";
+ int charWidth = 1;
+ String want = "" +
+ "╔═tabs══════╗\n" +
+ "║ a ║\n" +
+ "║ b ║\n" +
+ "║ c║\n" +
+ "╚═══════════╝";
+ assertEquals(new AsciiBox(want), AsciiBoxWriter.DEFAULT.boxString(name, data, charWidth));
+ }
+
+ @Test
+ void simpleBoxWithCR(){
+ String name = "cr";
+ String data = "a\r\nb\r\nc\r\n";
+ int charWidth = 1;
+ String want = ""+
+ "╔═cr╗\n" +
+ "║ a ║\n" +
+ "║ b ║\n" +
+ "║ c ║\n" +
+ "╚═══╝";
+ assertEquals(new AsciiBox(want), AsciiBoxWriter.DEFAULT.boxString(name, data, charWidth));
+ }
}
@Nested