From 84c3ba910c35a795571389469c608896bc3c7bbf Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Fri, 19 Dec 2025 12:27:10 -0700 Subject: [PATCH] Implement tcgetwinsize and fix tcsetwinsize --- src/header/termios/mod.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/header/termios/mod.rs b/src/header/termios/mod.rs index 79624d86ec..1a5a3fc704 100644 --- a/src/header/termios/mod.rs +++ b/src/header/termios/mod.rs @@ -207,10 +207,16 @@ pub unsafe extern "C" fn tcsendbreak(fd: c_int, _dur: c_int) -> c_int { sys_ioctl::ioctl(fd, sys_ioctl::TCSBRK, 0 as *mut _) } +/// See . +#[unsafe(no_mangle)] +pub unsafe extern "C" fn tcgetwinsize(fd: c_int, sws: *mut winsize) -> c_int { + sys_ioctl::ioctl(fd, sys_ioctl::TIOCGWINSZ, sws.cast()) +} + /// See . #[unsafe(no_mangle)] -pub unsafe extern "C" fn tcsetwinsize(fd: c_int, mut sws: winsize) -> c_int { - sys_ioctl::ioctl(fd, sys_ioctl::TIOCSWINSZ, &mut sws as *mut _ as *mut c_void) +pub unsafe extern "C" fn tcsetwinsize(fd: c_int, sws: *const winsize) -> c_int { + sys_ioctl::ioctl(fd, sys_ioctl::TIOCSWINSZ, (sws as *mut winsize).cast()) } /// See .