diff --git a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/FourCornerRecipe.java b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/FourCornerRecipe.java index 03119c6..f3ae205 100644 --- a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/FourCornerRecipe.java +++ b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/FourCornerRecipe.java @@ -404,26 +404,23 @@ final public class FourCornerRecipe { return out; } - // todo: remove X06 output here ?? - - static public List toDecimalsX06(int value) { - return toDecimalsX00(new ArrayList<>(), value); + static public List toDecimalsX06(int value) { + return toDecimalsX00(new ArrayList<>(), value, true); } - static public List toDecimalsX18(int value) { - return toDecimalsX00(new ArrayList<>(), value); + static public List toDecimalsX18(int value) { + return toDecimalsX00(new ArrayList<>(), value, false); } - static public void toDecimalsX06(List out, int value) { - toDecimalsX00(out, value); + static public void toDecimalsX06(List out, int value) { + toDecimalsX00(out, value, true); } - static public void toDecimalsX18(List out, int value) { - toDecimalsX00(out, value); + static public void toDecimalsX18(List out, int value) { + toDecimalsX00(out, value, false); } - @SuppressWarnings("unchecked") - static private List toDecimalsX00(List out, int value) { + static private List toDecimalsX00(List out, int value, boolean isSixBit) { String valueStr = Integer.toString(value); PrimitiveIterator.OfInt i = valueStr.codePoints().iterator(); boolean first = true; @@ -431,12 +428,23 @@ final public class FourCornerRecipe { int chr = i.nextInt(); int num = chr - '0'; if (first) { - first = false; // Add escaping only once - out.add((T) FCDotPIE9CDash10.valueOf(num)); + first = false; // Add escaping only once for six bit mode + if (isSixBit) { + out.addAll(FCDotPIE9CDash10.valueOf(num).baklavaPointSequence()); + } else { + out.add(FCDotPIE9CDash10.valueOf(num).cakePointDotIndex()); + } } else { - out.add((T) FCDotCDC1604DashP6.valueOf(FCDotCDC1604DashP6.NX01_A.ordinal() + num)); + if (isSixBit) { + out.add(FCDotCDC1604DashP6.NX01_A.ordinal() + num); + } else { + out.add(FCDotPIE9CDash10.valueOf(num).cakePointDotIndex()); + } } } + if (isSixBit) { + out.add(FCDotCDC1604DashP6._SALAH_EXCLAMATION.cakePointDotIndex()); // fixme improve: see FourCornerDotCollePie9.baklavaPointsPIE9C + } return out; } } diff --git a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/FourCornerUnicodeDisplay.java b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/FourCornerUnicodeDisplay.java index 6140f0e..23f1d99 100644 --- a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/FourCornerUnicodeDisplay.java +++ b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/FourCornerUnicodeDisplay.java @@ -89,30 +89,36 @@ public class FourCornerUnicodeDisplay { return buf.toString(); } + @Deprecated public String renderFromX06(List chars) { return buildString(v -> renderFromX06(chars, v)); } + @Deprecated public void renderFromX06(List chars, StringBuilder buf) { List charPoints = new ArrayList<>(chars.size()); chars.forEach(v -> charPoints.addAll(v.baklavaPointSequence())); renderFromInt18(charPoints, buf); } + @Deprecated public String renderFromX08(List chars) { return buildString(v -> renderFromX08(chars, v)); } + @Deprecated public void renderFromX08(List chars, StringBuilder buf) { List charPoints = new ArrayList<>(chars.size()); chars.forEach(v -> charPoints.addAll(v.muffinPointSequence())); renderFromInt18(charPoints, buf); } + @Deprecated public String renderFromX18(List chars) { return buildString(v -> renderFromX18(chars, v)); } + @Deprecated public void renderFromX18(List chars, StringBuilder buf) { List charPoints = new ArrayList<>(chars.size()); chars.forEach(v -> charPoints.addAll(v.cakePointSequence())); diff --git a/nx01-x4o-fc18/src/test/java/org/x4o/fc18/cake2/zero33/FCDotVT06Test.java b/nx01-x4o-fc18/src/test/java/org/x4o/fc18/cake2/zero33/FCDotVT06Test.java index a8f4c52..6d7f7df 100644 --- a/nx01-x4o-fc18/src/test/java/org/x4o/fc18/cake2/zero33/FCDotVT06Test.java +++ b/nx01-x4o-fc18/src/test/java/org/x4o/fc18/cake2/zero33/FCDotVT06Test.java @@ -29,7 +29,6 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.x4o.fc18.FourCornerUnicodeDisplay; import org.x4o.fc18.FourCornerRecipe; -import org.x4o.fc18.cake2.FourCornerX06BaklavaPointSequence; import org.x4o.fc18.cake2.zero33.vt06.VTDash06DotZeroACursor; import org.x4o.fc18.cake2.zero33.vt06.VTDash06DotZeroCClear; @@ -43,25 +42,25 @@ public class FCDotVT06Test { @Test public void testCusorGoto() throws Exception { - List cdc = new ArrayList<>(); - cdc.add(VTDash06DotZeroACursor.VT_CURSOR_GOTO); + List cdc = new ArrayList<>(); + cdc.addAll(VTDash06DotZeroACursor.VT_CURSOR_GOTO.baklavaPointSequence()); cdc.addAll(FourCornerRecipe.toDecimalsX06(123)); // TODO: fix these are the wrong, we need to use the txt grams version - cdc.add(FCDotCDC1604DashP6._RAKA_QUESTION); + cdc.add(FCDotCDC1604DashP6._RAKA_QUESTION.baklavaPointDotIndex()); cdc.addAll(FourCornerRecipe.toDecimalsX06(456)); - cdc.add(FCDotCDC1604DashP6._SALAH_EXCLAMATION); + cdc.add(FCDotCDC1604DashP6._SALAH_EXCLAMATION.baklavaPointDotIndex()); - Assertions.assertEquals("␘␘␇AG␇␇␇^BCD?␇␇␇^EFG!", FourCornerUnicodeDisplay.raw().renderFromX06(cdc)); + Assertions.assertEquals("␘␘␇AG␇␇␇^BCD?␇␇␇^EFG!", FourCornerUnicodeDisplay.raw().renderFromInt18(cdc)); // TODO: Fix lexer embedded escapes, and display external with single unicode escape sign //Assertions.assertEquals("?AG?BCD?EFG!", FourCornerUnicodeDisplay.text().renderFromX06(cdc)); } @Test public void testClearTop5Lines() throws Exception { - List cdc = new ArrayList<>(); - cdc.add(VTDash06DotZeroCClear.VT_CLEAR_TOP); + List cdc = new ArrayList<>(); + cdc.addAll(VTDash06DotZeroCClear.VT_CLEAR_TOP.baklavaPointSequence()); cdc.addAll(FourCornerRecipe.toDecimalsX06(5)); - cdc.add(FCDotCDC1604DashP6._SALAH_EXCLAMATION); + cdc.add(FCDotCDC1604DashP6._SALAH_EXCLAMATION.baklavaPointDotIndex()); - Assertions.assertEquals("␘␘␇CA␇␇␇^F!", FourCornerUnicodeDisplay.raw().renderFromX06(cdc)); + Assertions.assertEquals("␘␘␇CA␇␇␇^F!", FourCornerUnicodeDisplay.raw().renderFromInt18(cdc)); } }