--- gforth/Attic/io.c 1996/09/23 20:41:59 1.17 +++ gforth/Attic/io.c 1997/03/04 22:09:54 1.20 @@ -28,7 +28,7 @@ #include "config.h" #include -#ifdef apollo +#if defined(apollo) || defined(_WIN32) #define _POSIX_VERSION #endif @@ -71,7 +71,7 @@ /* System V machines use termio. */ #if !defined (_POSIX_VERSION) -# if defined (USG) || defined (hpux) || defined (Xenix) || defined (sgi) || defined (DGUX) || defined (ultrix) || defined (Solaris) +# if defined (USG) || defined (hpux) || defined (Xenix) || defined (sgi) || defined (DGUX) || defined (ultrix) || defined (Solaris) || defined(_WIN32) # undef NEW_TTY_DRIVER # define TERMIO_TTY_DRIVER # include @@ -615,8 +615,18 @@ long key_avail (stream) if(!terminal_prepped) prep_terminal(); -#if defined (FIONREAD) +#ifndef _WIN32 result = ioctl (tty, FIONREAD, &chars_avail); +#else + { + fd_set selin; + static int now[2] = { 0 , 0 }; + int res; + + FD_ZERO(&selin); + FD_SET(tty, &selin); + chars_avail=select(1, &selin, NULL, NULL, now); + } #endif if(chars_avail == -1L) @@ -755,7 +765,7 @@ signal_throw(int sig) } UCell cols=80; -#ifdef MSDOS +#if defined(MSDOS) || defined (_WIN32) UCell rows=25; #else UCell rows=24;