Index: xc/programs/xterm/main.c diff -u xc/programs/xterm/main.c:1.1.1.22 xc/programs/xterm/main.c:1.2 --- xc/programs/xterm/main.c:1.1.1.22 Tue Mar 19 07:36:38 1996 +++ xc/programs/xterm/main.c Sun Mar 24 01:10:29 1996 @@ -182,6 +182,10 @@ #undef CAPS_LOCK #endif +#ifdef CSRG_BASED +#define USE_POSIX_TERMIOS +#endif + #include #include @@ -199,6 +203,9 @@ #endif #endif +#ifdef USE_POSIX_TERMIOS +#include +#else #ifdef USE_TERMIOS #include /* this hacked termios support only works on SYSV */ @@ -3143,11 +3197,11 @@ shname_minus = malloc(strlen(shname) + 2); (void) strcpy(shname_minus, "-"); (void) strcat(shname_minus, shname); -#ifndef USE_SYSV_TERMIO +#if !defined(USE_SYSV_TERMIO) && !defined(USE_POSIX_TERMIOS) ldisc = XStrCmp("csh", shname + strlen(shname) - 3) == 0 ? NTTYDISC : 0; ioctl(0, TIOCSETD, (char *)&ldisc); -#endif /* !USE_SYSV_TERMIO */ +#endif /* !USE_SYSV_TERMIO && !USE_POSIX_TERMIOS */ #ifdef USE_LOGIN_DASH_P if (term->misc.login_shell && pw && added_utmp_entry) Index: xc/programs/xterm/resize.c diff -u xc/programs/xterm/resize.c:1.1.1.9 xc/programs/xterm/resize.c:1.2 --- xc/programs/xterm/resize.c:1.1.1.9 Wed Feb 14 21:58:14 1996 +++ xc/programs/xterm/resize.c Sun Mar 24 01:10:32 1996 @@ -87,19 +87,19 @@ #define USE_TERMINFO #endif -#ifdef MINIX +#if defined(CSRG_BASED) #define USE_TERMIOS #endif #include #ifdef USE_SYSV_TERMIO -#include +# include #else /* else not USE_SYSV_TERMIO */ -#ifdef MINIX -#include -#else /* !MINIX */ -#include -#endif /* MINIX */ +# ifdef USE_TERMIOS +# include +# else /* not USE_TERMIOS */ +# include +# endif /* USE_TERMIOS */ #endif /* USE_SYSV_TERMIO */ #ifdef USE_USG_PTYS @@ -127,8 +127,9 @@ #define bzero(s, n) memset(s, 0, n) #endif /* USE_SYSV_TERMIO */ -#ifdef USE_TERMIOS +#ifdef MINIX #define USE_SYSV_TERMIO +#include #define termio termios #define TCGETA TCGETS #define TCSETAW TCSETSW @@ -190,7 +191,11 @@ #ifdef USE_SYSV_TERMIO struct termio tioorig; #else /* not USE_SYSV_TERMIO */ +# ifdef USE_TERMIOS +struct termios tioorig; +# else /* not USE_TERMIOS */ struct sgttyb sgorig; +# endif /* USE_TERMIOS */ #endif /* USE_SYSV_TERMIO */ char *size[EMULATIONS] = { "\033[%d;%dR", @@ -244,7 +249,11 @@ #ifdef USE_SYSV_TERMIO struct termio tio; #else /* not USE_SYSV_TERMIO */ +#ifdef USE_TERMIOS + struct termios tio; +#else /* not USE_TERMIOS */ struct sgttyb sg; +#endif /* USE_TERMIOS */ #endif /* USE_SYSV_TERMIO */ #ifdef USE_TERMCAP char termcap [1024]; @@ -366,10 +375,20 @@ tio.c_cc[VMIN] = 6; tio.c_cc[VTIME] = 1; #else /* else not USE_SYSV_TERMIO */ +#if defined(USE_TERMIOS) + tcgetattr(tty, &tioorig); + tio = tioorig; + tio.c_iflag &= ~ICRNL; + tio.c_lflag &= ~(ICANON | ECHO); + tio.c_cflag |= CS8; + tio.c_cc[VMIN] = 6; + tio.c_cc[VTIME] = 1; +#else /* not USE_TERMIOS */ ioctl (tty, TIOCGETP, &sgorig); sg = sgorig; sg.sg_flags |= RAW; sg.sg_flags &= ~ECHO; +#endif /* USE_TERMIOS */ #endif /* USE_SYSV_TERMIO */ signal(SIGINT, onintr); signal(SIGQUIT, onintr); @@ -377,7 +396,11 @@ #ifdef USE_SYSV_TERMIO ioctl (tty, TCSETAW, &tio); #else /* not USE_SYSV_TERMIO */ +#ifdef USE_TERMIOS + tcsetattr(tty, TCSADRAIN, &tio); +#else /* not USE_TERMIOS */ ioctl (tty, TIOCSETP, &sg); +#endif /* USE_TERMIOS */ #endif /* USE_SYSV_TERMIO */ if (argc == 2) { @@ -434,7 +457,11 @@ #ifdef USE_SYSV_TERMIO ioctl (tty, TCSETAW, &tioorig); #else /* not USE_SYSV_TERMIO */ +#ifdef USE_TERMIOS + tcsetattr(tty, TCSADRAIN, &tioorig); +#else /* not USE_TERMIOS */ ioctl (tty, TIOCSETP, &sgorig); +#endif /* USE_TERMIOS */ #endif /* USE_SYSV_TERMIO */ signal(SIGINT, SIG_DFL); signal(SIGQUIT, SIG_DFL); @@ -595,7 +622,11 @@ #ifdef USE_SYSV_TERMIO ioctl (tty, TCSETAW, &tioorig); #else /* not USE_SYSV_TERMIO */ +#ifdef USE_TERMIOS + tcsetattr (tty, TCSADRAIN, &tioorig); +#else /* not USE_TERMIOS */ ioctl (tty, TIOCSETP, &sgorig); +#endif /* use TERMIOS */ #endif /* USE_SYSV_TERMIO */ exit(1); }