@@ -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
@@ -1792,17 +1799,16 @@ int MAIN(int argc, char **argv)
17921799 tv .tv_usec = 0 ;
17931800 i = select (width , (void * )& readfds , (void * )& writefds ,
17941801 NULL , & tv );
1795- # if defined(OPENSSL_SYS_WINCE ) || defined(OPENSSL_SYS_MSDOS )
1796- if (!i && (!_kbhit () || !read_tty ))
1797- continue ;
1798- # else
1802+ #if defined(OPENSSL_USE_STD_INPUT_HANDLE )
17991803 if (!i && (!((_kbhit ())
18001804 || (WAIT_OBJECT_0 ==
18011805 WaitForSingleObject (GetStdHandle
18021806 (STD_INPUT_HANDLE ),
18031807 0 )))
18041808 || !read_tty ))
18051809 continue ;
1810+ #else
1811+ if (!i && (!_kbhit () || !read_tty ) ) continue ;
18061812# endif
18071813 } else
18081814 i = select (width , (void * )& readfds , (void * )& writefds ,
@@ -2004,12 +2010,12 @@ int MAIN(int argc, char **argv)
20042010 }
20052011 }
20062012#if defined(OPENSSL_SYS_WINDOWS ) || defined(OPENSSL_SYS_MSDOS )
2007- # if defined(OPENSSL_SYS_WINCE ) || defined(OPENSSL_SYS_MSDOS )
2008- else if (_kbhit ())
2009- # else
2013+ #if defined(OPENSSL_USE_STD_INPUT_HANDLE )
20102014 else if ((_kbhit ())
20112015 || (WAIT_OBJECT_0 ==
20122016 WaitForSingleObject (GetStdHandle (STD_INPUT_HANDLE ), 0 )))
2017+ #else
2018+ else if (_kbhit ())
20132019# endif
20142020#elif defined (OPENSSL_SYS_NETWARE )
20152021 else if (_kbhit ())
0 commit comments