From 234af89ffb8d11bcd5388d95a6dfd984772e2acd Mon Sep 17 00:00:00 2001 From: Luqman Aden Date: Mon, 27 Sep 2021 07:39:06 -0700 Subject: [PATCH] Use libc bindings instead of manual extern blocks to take advantage of platform wrappers in libc crate. --- src/sys/unix/attr.rs | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/src/sys/unix/attr.rs b/src/sys/unix/attr.rs index d25e942..9a5c886 100644 --- a/src/sys/unix/attr.rs +++ b/src/sys/unix/attr.rs @@ -1,29 +1,19 @@ use std::{io, mem}; use super::{cvt, Termios}; -use super::libc::c_int; pub fn get_terminal_attr() -> io::Result { - extern "C" { - pub fn tcgetattr(fd: c_int, termptr: *mut Termios) -> c_int; - } unsafe { let mut termios = mem::zeroed(); - cvt(tcgetattr(1, &mut termios))?; + cvt(libc::tcgetattr(1, &mut termios))?; Ok(termios) } } 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(1, 0, termios) }).and(Ok(())) + cvt(unsafe { libc::tcsetattr(1, 0, termios) }).and(Ok(())) } pub fn raw_terminal_attr(termios: &mut Termios) { - extern "C" { - pub fn cfmakeraw(termptr: *mut Termios); - } - unsafe { cfmakeraw(termios) } + unsafe { libc::cfmakeraw(termios) } }