Skip to content

Commit af5fef4

Browse files
Fixed: Fix CSI Delete Ps Column(s) (DECDC)
Firstly, `TerminalBuffer.blockSet()` was throwing the exception since `sx + w > mColumns` which was technically passed by TerminalEmulator.blockClear()`. Actual value would be `mCursorRow + columnsToMove + columnsToDelete > mColumns`. Secondly, the call to `blockClear()` should not be needed since it the `blockCopy()` would overwrite the columns to be deleted on copy. Run `printf "\e['~"` to delete 1 column and `printf "\e[3'~"` to delete 3 columns. Run `printf "\e[3'}"` to insert 2 columns. java.lang.IllegalArgumentException: Illegal arguments! blockSet(78, 0, 1, 30, 32, 56, 30) at com.termux.terminal.TerminalBuffer.blockSet(TerminalBuffer.java:397) at com.termux.terminal.TerminalEmulator.blockClear(TerminalEmulator.java:2035) at com.termux.terminal.TerminalEmulator.processCodePoint(TerminalEmulator.java:799)
1 parent 03e31d1 commit af5fef4

File tree

1 file changed

+0
-1
lines changed

1 file changed

+0
-1
lines changed

terminal-emulator/src/main/java/com/termux/terminal/TerminalEmulator.java

-1
Original file line numberDiff line numberDiff line change
@@ -796,7 +796,6 @@ public void processCodePoint(int b) {
796796
int columnsToDelete = Math.min(getArg0(1), columnsAfterCursor);
797797
int columnsToMove = columnsAfterCursor - columnsToDelete;
798798
mScreen.blockCopy(mCursorCol + columnsToDelete, 0, columnsToMove, mRows, mCursorCol, 0);
799-
blockClear(mCursorRow + columnsToMove, 0, columnsToDelete, mRows);
800799
} else {
801800
unknownSequence(b);
802801
}

0 commit comments

Comments
 (0)