From b6042e673cbad2817c49c286f2c7c32b6545b15b Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Sun, 26 Jan 2020 19:54:18 -0700 Subject: [PATCH] Implement OPOST and ONLCR --- src/main.rs | 1 + src/pty.rs | 10 +++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main.rs b/src/main.rs index 447660c807..1572793841 100644 --- a/src/main.rs +++ b/src/main.rs @@ -58,6 +58,7 @@ fn main(){ } } } + fn post_fevent(socket: &mut File, id: usize, flags: usize, count: usize) { socket.write(&Packet { id: 0, diff --git a/src/pty.rs b/src/pty.rs index 5408fd837a..f61115bbf3 100644 --- a/src/pty.rs +++ b/src/pty.rs @@ -213,12 +213,20 @@ impl Pty { } pub fn output(&mut self, buf: &[u8]) { - //TODO: Output flags + //TODO: more output flags + + let ofl = &self.termios.c_oflag; + + let opost = ofl & OPOST == OPOST; + let onlcr = ofl & ONLCR == ONLCR; let mut vec = Vec::with_capacity(buf.len() + 1); vec.push(0); for &b in buf.iter() { + if opost && onlcr && b == b'\n' { + vec.push(b'\r'); + } vec.push(b); }