in core/src/com/jediterm/terminal/model/TerminalLine.java [187:224]
public void deleteCharacters(int x, int count, @NotNull TextStyle style) {
int p = 0;
TextEntries newEntries = new TextEntries();
int remaining = count;
for (TextEntry entry : myTextEntries) {
if (remaining == 0) {
newEntries.add(entry);
continue;
}
int len = entry.getLength();
if (p + len <= x) {
p += len;
newEntries.add(entry);
continue;
}
int dx = x - p; //>=0
if (dx > 0) {
//part of entry before x
newEntries.add(new TextEntry(entry.getStyle(), entry.getText().subBuffer(0, dx)));
p = x;
}
if (dx + remaining < len) {
//part that left after deleting count
newEntries.add(new TextEntry(entry.getStyle(), entry.getText().subBuffer(dx + remaining, len - (dx + remaining))));
remaining = 0;
} else {
remaining -= (len - dx);
p = x;
}
}
if (count > 0 && style != TextStyle.EMPTY) { // apply style to the end of the line
newEntries.add(new TextEntry(style, new CharBuffer(CharUtils.NUL_CHAR, count)));
}
myTextEntries = newEntries;
}