@@ -180,6 +180,13 @@ typedef unsigned int u_int;
180180# include <fcntl.h>
181181#endif
182182
183+ /* Use Windows API with STD_INPUT_HANDLE when checking for input?
184+ Don't look at OPENSSL_SYS_MSDOS for this, since it is always defined if
185+ OPENSSL_SYS_WINDOWS is defined */
186+ #if defined(OPENSSL_SYS_WINDOWS ) && !defined(OPENSSL_SYS_WINCE ) && defined(STD_INPUT_HANDLE )
187+ #define OPENSSL_USE_STD_INPUT_HANDLE
188+ #endif
189+
183190#undef PROG
184191#define PROG s_client_main
185192
@@ -1764,17 +1771,16 @@ int MAIN(int argc, char **argv)
17641771 tv .tv_usec = 0 ;
17651772 i = select (width , (void * )& readfds , (void * )& writefds ,
17661773 NULL , & tv );
1767- # if defined(OPENSSL_SYS_WINCE ) || defined(OPENSSL_SYS_MSDOS )
1768- if (!i && (!_kbhit () || !read_tty ))
1769- continue ;
1770- # else
1774+ #if defined(OPENSSL_USE_STD_INPUT_HANDLE )
17711775 if (!i && (!((_kbhit ())
17721776 || (WAIT_OBJECT_0 ==
17731777 WaitForSingleObject (GetStdHandle
17741778 (STD_INPUT_HANDLE ),
17751779 0 )))
17761780 || !read_tty ))
17771781 continue ;
1782+ #else
1783+ if (!i && (!_kbhit () || !read_tty ) ) continue ;
17781784# endif
17791785 } else
17801786 i = select (width , (void * )& readfds , (void * )& writefds ,
@@ -1976,12 +1982,12 @@ int MAIN(int argc, char **argv)
19761982 }
19771983 }
19781984#if defined(OPENSSL_SYS_WINDOWS ) || defined(OPENSSL_SYS_MSDOS )
1979- # if defined(OPENSSL_SYS_WINCE ) || defined(OPENSSL_SYS_MSDOS )
1980- else if (_kbhit ())
1981- # else
1985+ #if defined(OPENSSL_USE_STD_INPUT_HANDLE )
19821986 else if ((_kbhit ())
19831987 || (WAIT_OBJECT_0 ==
19841988 WaitForSingleObject (GetStdHandle (STD_INPUT_HANDLE ), 0 )))
1989+ #else
1990+ else if (_kbhit ())
19851991# endif
19861992#elif defined (OPENSSL_SYS_NETWARE )
19871993 else if (_kbhit ())
0 commit comments