aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2021-12-03 19:02:20 -0500
committerJesse Luehrs <doy@tozt.net>2021-12-03 19:02:20 -0500
commita77b914513017ef5e7287526d4da17581b6f0f27 (patch)
tree5e623ec69a217986b2f71e1eb06071b1e447386d
parentde07e30df9e5bcac114ff7a088da079a1782c41b (diff)
downloadvt100-rust-a77b914513017ef5e7287526d4da17581b6f0f27.tar.gz
vt100-rust-a77b914513017ef5e7287526d4da17581b6f0f27.zip
another parameter parsing bug
-rw-r--r--src/grid.rs2
-rw-r--r--tests/weird.rs3
2 files changed, 3 insertions, 2 deletions
diff --git a/src/grid.rs b/src/grid.rs
index 839ac2f..246e9e6 100644
--- a/src/grid.rs
+++ b/src/grid.rs
@@ -472,7 +472,7 @@ impl Grid {
let size = self.size;
let pos = self.pos;
let row = self.current_row_mut();
- for col in pos.col..((pos.col + count).min(size.cols)) {
+ for col in pos.col..((pos.col.saturating_add(count)).min(size.cols)) {
row.erase(col as usize, attrs);
}
}
diff --git a/tests/weird.rs b/tests/weird.rs
index 46ecd20..7e19ebd 100644
--- a/tests/weird.rs
+++ b/tests/weird.rs
@@ -6,9 +6,10 @@ fn intermediate_control() {
}
#[test]
-fn many_empty_params() {
+fn params() {
let mut parser = vt100::Parser::default();
parser.process(b"\x1b[::::::::::::::::::::::::::::::::@");
parser.process(b"\x1b[::::::::::::::::::::::::::::::::H");
parser.process(b"\x1b[::::::::::::::::::::::::::::::::r");
+ parser.process(b"a\x1b[8888888X");
}