@@ -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
@@ -1583,17 +1590,16 @@ int MAIN(int argc, char **argv)
15831590 tv .tv_usec = 0 ;
15841591 i = select (width , (void * )& readfds , (void * )& writefds ,
15851592 NULL , & tv );
1586- # if defined(OPENSSL_SYS_WINCE ) || defined(OPENSSL_SYS_MSDOS )
1587- if (!i && (!_kbhit () || !read_tty ))
1588- continue ;
1589- # else
1593+ #if defined(OPENSSL_USE_STD_INPUT_HANDLE )
15901594 if (!i && (!((_kbhit ())
15911595 || (WAIT_OBJECT_0 ==
15921596 WaitForSingleObject (GetStdHandle
15931597 (STD_INPUT_HANDLE ),
15941598 0 )))
15951599 || !read_tty ))
15961600 continue ;
1601+ #else
1602+ if (!i && (!_kbhit () || !read_tty ) ) continue ;
15971603# endif
15981604 } else
15991605 i = select (width , (void * )& readfds , (void * )& writefds ,
@@ -1792,12 +1798,12 @@ int MAIN(int argc, char **argv)
17921798 }
17931799 }
17941800#if defined(OPENSSL_SYS_WINDOWS ) || defined(OPENSSL_SYS_MSDOS )
1795- # if defined(OPENSSL_SYS_WINCE ) || defined(OPENSSL_SYS_MSDOS )
1796- else if (_kbhit ())
1797- # else
1801+ #if defined(OPENSSL_USE_STD_INPUT_HANDLE )
17981802 else if ((_kbhit ())
17991803 || (WAIT_OBJECT_0 ==
18001804 WaitForSingleObject (GetStdHandle (STD_INPUT_HANDLE ), 0 )))
1805+ #else
1806+ else if (_kbhit ())
18011807# endif
18021808#elif defined (OPENSSL_SYS_NETWARE )
18031809 else if (_kbhit ())
0 commit comments