--- src/configure.in +++ src/configure.in @@ -115,7 +115,7 @@ AC_OUTPUT_COMMANDS([ #include #include -#include +#include #include #include _EOF_ @@ -282,7 +282,7 @@ _EOF_ case "${host}" in *-*-linux-gnu*) cat >> $tmpfile << '_EOF_' #define TMPNAME_MAX NAME_MAX -#define metamail_tty_state_t struct termio +#define metamail_tty_state_t struct termios _EOF_ ;; --- src/configure +++ src/configure @@ -15956,7 +15956,7 @@ _LT_EOF #include #include -#include +#include #include #include _EOF_ @@ -16123,7 +16123,7 @@ _EOF_ case "${host}" in *-*-linux-gnu*) cat >> $tmpfile << '_EOF_' #define TMPNAME_MAX NAME_MAX -#define metamail_tty_state_t struct termio +#define metamail_tty_state_t struct termios _EOF_ ;; --- src/src/metamail/metamail.c +++ src/src/metamail/metamail.c @@ -2063,8 +2063,8 @@ int HasSavedTtyState=0; void SaveTtyState(void) { /* Bogus -- would like a good portable way to reset the terminal state here */ - ioctl(fileno(stdin), TCGETA, &MyTtyStateIn); - ioctl(fileno(stdout), TCGETA, &MyTtyStateOut); + tcgetattr(fileno(stdin), &MyTtyStateIn); + tcgetattr(fileno(stdout), &MyTtyStateOut); HasSavedTtyState = 1; } @@ -2072,8 +2072,8 @@ SaveTtyState(void) { void RestoreTtyState() { if (HasSavedTtyState) { - ioctl(fileno(stdout), TCSETA, &MyTtyStateOut); - ioctl(fileno(stdin), TCSETA, &MyTtyStateIn); + tcsetattr(fileno(stdout), TCSANOW, &MyTtyStateOut); + tcsetattr(fileno(stdin), TCSANOW, &MyTtyStateIn); } } @@ -2288,14 +2288,14 @@ PauseForUser(void) { int StartRawStdin(void) { - struct termio orterm, fterm; - ioctl(0, TCGETA, &orterm); /* get current (i.e. cooked) termio */ + struct termios orterm, fterm; + tcgetattr(0, &orterm); /* get current (i.e. cooked) termio */ fterm = orterm; /* get termio to modify */ fterm.c_lflag &= ~ICANON; /* clear ICANON giving raw mode */ fterm.c_cc[VMIN] = 1; /* set MIN char count to 1 */ fterm.c_cc[VTIME] = 0; /* set NO time limit */ - return ioctl(0, TCSETAW, &fterm); /* modify termio for raw mode */ + return tcsetattr(0, TCSADRAIN, &fterm); /* modify termio for raw mode */ }