small software-rendered rust tty
Diffstat (limited to 'src/term.rs')
| -rw-r--r-- | src/term.rs | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/term.rs b/src/term.rs index aaf1cec..30e77d5 100644 --- a/src/term.rs +++ b/src/term.rs @@ -1,5 +1,6 @@ use std::iter::repeat_n; use std::ops::Not; +use std::os::fd::BorrowedFd; mod cells; use cells::*; use ctlfun::Parameter::*; @@ -52,7 +53,7 @@ impl Terminal { self.cells.cells().fill(Cell::default()); } #[implicit_fn::implicit_fn] - pub fn rx(&mut self, x: u8) { + pub fn rx(&mut self, x: u8, pty: BorrowedFd<'_>) { match self.p.parse_byte(x) { Continue => {} Char(x) => { @@ -225,6 +226,19 @@ impl Terminal { } Control(ControlFunction { start: b'[', + params: [Value(6)], + end: b'n', + .. + }) => { + super::write( + pty, + format!("\x1b[{};{}R", self.cells.r(), self.cells.c()) + .as_bytes(), + ) + .unwrap(); + } + Control(ControlFunction { + start: b'[', params: [x], end: b'X', .. |