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