@@ -180,6 +180,13 @@ typedef unsigned int u_int;
180
180
# include <fcntl.h>
181
181
#endif
182
182
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
+
183
190
#undef PROG
184
191
#define PROG s_client_main
185
192
@@ -1793,17 +1800,16 @@ int MAIN(int argc, char **argv)
1793
1800
tv .tv_usec = 0 ;
1794
1801
i = select (width , (void * )& readfds , (void * )& writefds ,
1795
1802
NULL , & tv );
1796
- # if defined(OPENSSL_SYS_WINCE ) || defined(OPENSSL_SYS_MSDOS )
1797
- if (!i && (!_kbhit () || !read_tty ))
1798
- continue ;
1799
- # else
1803
+ #if defined(OPENSSL_USE_STD_INPUT_HANDLE )
1800
1804
if (!i && (!((_kbhit ())
1801
1805
|| (WAIT_OBJECT_0 ==
1802
1806
WaitForSingleObject (GetStdHandle
1803
1807
(STD_INPUT_HANDLE ),
1804
1808
0 )))
1805
1809
|| !read_tty ))
1806
1810
continue ;
1811
+ #else
1812
+ if (!i && (!_kbhit () || !read_tty ) ) continue ;
1807
1813
# endif
1808
1814
} else
1809
1815
i = select (width , (void * )& readfds , (void * )& writefds ,
@@ -2005,12 +2011,12 @@ int MAIN(int argc, char **argv)
2005
2011
}
2006
2012
}
2007
2013
#if defined(OPENSSL_SYS_WINDOWS ) || defined(OPENSSL_SYS_MSDOS )
2008
- # if defined(OPENSSL_SYS_WINCE ) || defined(OPENSSL_SYS_MSDOS )
2009
- else if (_kbhit ())
2010
- # else
2014
+ #if defined(OPENSSL_USE_STD_INPUT_HANDLE )
2011
2015
else if ((_kbhit ())
2012
2016
|| (WAIT_OBJECT_0 ==
2013
2017
WaitForSingleObject (GetStdHandle (STD_INPUT_HANDLE ), 0 )))
2018
+ #else
2019
+ else if (_kbhit ())
2014
2020
# endif
2015
2021
#elif defined (OPENSSL_SYS_NETWARE )
2016
2022
else if (_kbhit ())
0 commit comments