From 2ae76299351bf02a6baa93f8ee48414d13a55a2c Mon Sep 17 00:00:00 2001 From: Ludovic Apvrille <ludovic.apvrille@telecom-paristech.fr> Date: Wed, 27 Mar 2019 14:45:32 +0100 Subject: [PATCH] Test on DEL --- src/main/java/myutil/Terminal.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/main/java/myutil/Terminal.java b/src/main/java/myutil/Terminal.java index 865db10f72..777eb5b67c 100644 --- a/src/main/java/myutil/Terminal.java +++ b/src/main/java/myutil/Terminal.java @@ -212,7 +212,7 @@ public class Terminal { //BACKSPACE if ((val == BACKSPACE) || (val == DEL)) { currentBuf = del(currentBuf); - + //TAB } else if (val == TAB) { @@ -232,8 +232,13 @@ public class Terminal { currentBuf += x; } else { //System.out.println("Tricky cursor position"); + int sep = currentBuf.length()- cursorPosition; currentBuf = currentBuf.substring(0,cursorPosition-1) + x + currentBuf.substring(cursorPosition, currentBuf.length()); myPrint("" + x + currentBuf.substring(cursorPosition, currentBuf.length())); + // Must move cursor to previous psition + 1 + for(int i=0; i<sep; i++) { + backwardCode(); + } } cursorPosition ++; @@ -308,10 +313,14 @@ public class Terminal { if (cursorPosition == 0) { return; } - System.out.print("\033[1D"); + backwardCode(); cursorPosition --; } + private void backwardCode() { + System.out.print("\033[1D"); + } + private void forward(String currentBuf) { if (cursorPosition == currentBuf.length()) { return ; -- GitLab