diff --git a/src/main/java/myutil/Terminal.java b/src/main/java/myutil/Terminal.java index a8f78691528f4130024e5294fa0aac89cbeab131..74c3999224866308c4eb04e0e789551f9ee48880 100644 --- a/src/main/java/myutil/Terminal.java +++ b/src/main/java/myutil/Terminal.java @@ -131,7 +131,6 @@ public class Terminal { if ((sequence.charAt(0) == 91) && (sequence.charAt(1) == 65)) { if (buffer.size() > 0) { - //System.out.println("UP"); delCurrent(currentBuf); bufferPointer = (bufferPointer > 0) ? bufferPointer - 1 : bufferPointer; currentBuf = buffer.get(bufferPointer); @@ -286,10 +285,18 @@ public class Terminal { private String del(String currentBuf) { - if (currentBuf.length() > 0) { - myPrint("\b \b"); - currentBuf = currentBuf.substring(0, currentBuf.length() - 1); - cursorPosition--; + if (cursorPosition > 0) { + if (currentBuf.length() > 0) { + if (cursorPosition == currentBuf.length()) { + myPrint("\b \b"); + currentBuf = currentBuf.substring(0, currentBuf.length() - 1); + cursorPosition--; + } else { + currentBuf = currentBuf.substring(0, cursorPosition - 1) + currentBuf.substring(cursorPosition + 1, currentBuf.length()); + myPrint("\b"); + cursorPosition --; + } + } } return currentBuf; }