From 70adaebb1d8d38c9851b4de1c846441d753c8152 Mon Sep 17 00:00:00 2001 From: Guillaume Nodet Date: Tue, 1 Dec 2020 13:58:38 +0100 Subject: [PATCH] Check values when emitting ansi sequences for cursor movement, fixes #172 --- src/main/java/org/fusesource/jansi/Ansi.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/fusesource/jansi/Ansi.java b/src/main/java/org/fusesource/jansi/Ansi.java index 7aef8d1d..fa1ea97d 100644 --- a/src/main/java/org/fusesource/jansi/Ansi.java +++ b/src/main/java/org/fusesource/jansi/Ansi.java @@ -523,7 +523,7 @@ public Ansi cursor(final int row, final int column) { } public Ansi cursorToColumn(final int x) { - return appendEscapeSequence('G', x); + return x >= 0 ? appendEscapeSequence('G', x) : this; } public Ansi cursorUp(final int y) { @@ -531,15 +531,15 @@ public Ansi cursorUp(final int y) { } public Ansi cursorDown(final int y) { - return appendEscapeSequence('B', y); + return y > 0 ? appendEscapeSequence('B', y) : this; } public Ansi cursorRight(final int x) { - return appendEscapeSequence('C', x); + return x > 0 ? appendEscapeSequence('C', x) : this; } public Ansi cursorLeft(final int x) { - return appendEscapeSequence('D', x); + return x > 0 ? appendEscapeSequence('D', x) : this; } public Ansi cursorDownLine() { @@ -547,7 +547,7 @@ public Ansi cursorDownLine() { } public Ansi cursorDownLine(final int n) { - return appendEscapeSequence('E', n); + return n > 0 ? appendEscapeSequence('E', n) : this; } public Ansi cursorUpLine() { @@ -555,7 +555,7 @@ public Ansi cursorUpLine() { } public Ansi cursorUpLine(final int n) { - return appendEscapeSequence('F', n); + return n > 0 ? appendEscapeSequence('F', n) : this; } public Ansi eraseScreen() { @@ -575,11 +575,11 @@ public Ansi eraseLine(final Erase kind) { } public Ansi scrollUp(final int rows) { - return appendEscapeSequence('S', rows); + return rows > 0 ? appendEscapeSequence('S', rows) : this; } public Ansi scrollDown(final int rows) { - return appendEscapeSequence('T', rows); + return rows > 0 ? appendEscapeSequence('T', rows) : this; } public Ansi saveCursorPosition() {