Use stdout to get and set terminal attributes
This commit is contained in:
parent
a69af17888
commit
1c936ca06c
|
@ -5,7 +5,7 @@ use super::{cvt, syscall, Termios};
|
||||||
pub fn get_terminal_attr() -> io::Result<Termios> {
|
pub fn get_terminal_attr() -> io::Result<Termios> {
|
||||||
let mut termios = Termios::default();
|
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 res = cvt(syscall::read(fd, &mut termios));
|
||||||
let _ = syscall::close(fd);
|
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<()> {
|
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 res = cvt(syscall::write(fd, termios));
|
||||||
let _ = syscall::close(fd);
|
let _ = syscall::close(fd);
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ pub fn get_terminal_attr() -> io::Result<Termios> {
|
||||||
}
|
}
|
||||||
unsafe {
|
unsafe {
|
||||||
let mut termios = mem::zeroed();
|
let mut termios = mem::zeroed();
|
||||||
cvt(tcgetattr(0, &mut termios))?;
|
cvt(tcgetattr(1, &mut termios))?;
|
||||||
Ok(termios)
|
Ok(termios)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,7 @@ pub fn set_terminal_attr(termios: &Termios) -> io::Result<()> {
|
||||||
extern "C" {
|
extern "C" {
|
||||||
pub fn tcsetattr(fd: c_int, opt: c_int, termptr: *const Termios) -> c_int;
|
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) {
|
pub fn raw_terminal_attr(termios: &mut Termios) {
|
||||||
|
|
Loading…
Reference in New Issue