Skip to content

Commit 70adaeb

Browse files
committed
Check values when emitting ansi sequences for cursor movement, fixes #172
1 parent 0171ecb commit 70adaeb

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

src/main/java/org/fusesource/jansi/Ansi.java

+8-8
Original file line numberDiff line numberDiff line change
@@ -523,39 +523,39 @@ public Ansi cursor(final int row, final int column) {
523523
}
524524

525525
public Ansi cursorToColumn(final int x) {
526-
return appendEscapeSequence('G', x);
526+
return x >= 0 ? appendEscapeSequence('G', x) : this;
527527
}
528528

529529
public Ansi cursorUp(final int y) {
530530
return appendEscapeSequence('A', y);
531531
}
532532

533533
public Ansi cursorDown(final int y) {
534-
return appendEscapeSequence('B', y);
534+
return y > 0 ? appendEscapeSequence('B', y) : this;
535535
}
536536

537537
public Ansi cursorRight(final int x) {
538-
return appendEscapeSequence('C', x);
538+
return x > 0 ? appendEscapeSequence('C', x) : this;
539539
}
540540

541541
public Ansi cursorLeft(final int x) {
542-
return appendEscapeSequence('D', x);
542+
return x > 0 ? appendEscapeSequence('D', x) : this;
543543
}
544544

545545
public Ansi cursorDownLine() {
546546
return appendEscapeSequence('E');
547547
}
548548

549549
public Ansi cursorDownLine(final int n) {
550-
return appendEscapeSequence('E', n);
550+
return n > 0 ? appendEscapeSequence('E', n) : this;
551551
}
552552

553553
public Ansi cursorUpLine() {
554554
return appendEscapeSequence('F');
555555
}
556556

557557
public Ansi cursorUpLine(final int n) {
558-
return appendEscapeSequence('F', n);
558+
return n > 0 ? appendEscapeSequence('F', n) : this;
559559
}
560560

561561
public Ansi eraseScreen() {
@@ -575,11 +575,11 @@ public Ansi eraseLine(final Erase kind) {
575575
}
576576

577577
public Ansi scrollUp(final int rows) {
578-
return appendEscapeSequence('S', rows);
578+
return rows > 0 ? appendEscapeSequence('S', rows) : this;
579579
}
580580

581581
public Ansi scrollDown(final int rows) {
582-
return appendEscapeSequence('T', rows);
582+
return rows > 0 ? appendEscapeSequence('T', rows) : this;
583583
}
584584

585585
public Ansi saveCursorPosition() {

0 commit comments

Comments
 (0)