@@ -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
@@ -1584,17 +1591,16 @@ int MAIN(int argc, char **argv)
15841591                    tv .tv_usec  =  0 ;
15851592                    i  =  select (width , (void  *  )& readfds , (void  *  )& writefds ,
15861593                               NULL , & tv );
1587- # if  defined(OPENSSL_SYS_WINCE ) ||  defined(OPENSSL_SYS_MSDOS )
1588-                     if  (!i  &&  (!_kbhit () ||  !read_tty ))
1589-                         continue ;
1590- # else 
1594+ #if  defined(OPENSSL_USE_STD_INPUT_HANDLE )
15911595                    if  (!i  &&  (!((_kbhit ())
15921596                                 ||  (WAIT_OBJECT_0  == 
15931597                                     WaitForSingleObject (GetStdHandle 
15941598                                                         (STD_INPUT_HANDLE ),
15951599                                                         0 )))
15961600                               ||  !read_tty ))
15971601                        continue ;
1602+ #else 
1603+                     if (!i  &&  (!_kbhit () ||  !read_tty ) ) continue ;
15981604# endif 
15991605                } else 
16001606                    i  =  select (width , (void  * )& readfds , (void  * )& writefds ,
@@ -1793,12 +1799,12 @@ int MAIN(int argc, char **argv)
17931799            }
17941800        }
17951801#if  defined(OPENSSL_SYS_WINDOWS ) ||  defined(OPENSSL_SYS_MSDOS )
1796- # if  defined(OPENSSL_SYS_WINCE ) ||  defined(OPENSSL_SYS_MSDOS )
1797-         else  if  (_kbhit ())
1798- # else 
1802+ #if  defined(OPENSSL_USE_STD_INPUT_HANDLE )
17991803        else  if  ((_kbhit ())
18001804                 ||  (WAIT_OBJECT_0  == 
18011805                     WaitForSingleObject (GetStdHandle (STD_INPUT_HANDLE ), 0 )))
1806+ #else 
1807+         else  if  (_kbhit ())
18021808# endif 
18031809#elif  defined (OPENSSL_SYS_NETWARE )
18041810        else  if  (_kbhit ())
0 commit comments