-#define echo() (_tty.sg_flags |= ECHO, _echoit = TRUE, stty(_tty_ch, &_tty))
-#define noecho() (_tty.sg_flags &= ~ECHO, _echoit = FALSE, stty(_tty_ch, &_tty))
-#define nl() (_tty.sg_flags |= CRMOD,_pfast = _rawmode,stty(_tty_ch, &_tty))
-#define nonl() (_tty.sg_flags &= ~CRMOD, _pfast = TRUE, stty(_tty_ch, &_tty))
-#define savetty() ((void) gtty(_tty_ch, &_tty), _res_flg = _tty.sg_flags)
-#define resetty() (_tty.sg_flags = _res_flg, (void) stty(_tty_ch, &_tty))
+#define echo() (_tty.sg_flags |= ECHO, _echoit = TRUE, \
+ ioctl(_tty_ch, TIOCSETP, &_tty))
+#define noecho() (_tty.sg_flags &= ~ECHO, _echoit = FALSE, \
+ ioctl(_tty_ch, TIOCSETP, &_tty))
+#define nl() (_tty.sg_flags |= CRMOD,_pfast = _rawmode, \
+ ioctl(_tty_ch, TIOCSETP, &_tty))
+#define nonl() (_tty.sg_flags &= ~CRMOD, _pfast = TRUE, \
+ ioctl(_tty_ch, TIOCSETP, &_tty))
+#define savetty() ((void) ioctl(_tty_ch, TIOCGETP, &_tty), \
+ _res_flg = _tty.sg_flags)
+#define resetty() (_tty.sg_flags = _res_flg, \
+ (void) ioctl(_tty_ch, TIOCSETP, &_tty))