Use stdout to get and set terminal attributes

This commit is contained in:
Michael Bradshaw 2019-06-12 22:59:41 +00:00 committed by Jeremy Soller
parent a69af17888
commit 1c936ca06c
2 changed files with 4 additions and 4 deletions

View File

@ -5,7 +5,7 @@ use super::{cvt, syscall, Termios};
pub fn get_terminal_attr() -> io::Result<Termios> {
let mut termios = Termios::default();
let fd = cvt(syscall::dup(0, b"termios"))?;
let fd = cvt(syscall::dup(1, b"termios"))?;
let res = cvt(syscall::read(fd, &mut termios));
let _ = syscall::close(fd);
@ -17,7 +17,7 @@ pub fn get_terminal_attr() -> io::Result<Termios> {
}
pub fn set_terminal_attr(termios: &Termios) -> io::Result<()> {
let fd = cvt(syscall::dup(0, b"termios"))?;
let fd = cvt(syscall::dup(1, b"termios"))?;
let res = cvt(syscall::write(fd, termios));
let _ = syscall::close(fd);

View File

@ -9,7 +9,7 @@ pub fn get_terminal_attr() -> io::Result<Termios> {
}
unsafe {
let mut termios = mem::zeroed();
cvt(tcgetattr(0, &mut termios))?;
cvt(tcgetattr(1, &mut termios))?;
Ok(termios)
}
}
@ -18,7 +18,7 @@ pub fn set_terminal_attr(termios: &Termios) -> io::Result<()> {
extern "C" {
pub fn tcsetattr(fd: c_int, opt: c_int, termptr: *const Termios) -> c_int;
}
cvt(unsafe { tcsetattr(0, 0, termios) }).and(Ok(()))
cvt(unsafe { tcsetattr(1, 0, termios) }).and(Ok(()))
}
pub fn raw_terminal_attr(termios: &mut Termios) {