@@ -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
@@ -1764,17 +1771,16 @@ int MAIN(int argc, char **argv)
1764
1771
tv .tv_usec = 0 ;
1765
1772
i = select (width , (void * )& readfds , (void * )& writefds ,
1766
1773
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 )
1771
1775
if (!i && (!((_kbhit ())
1772
1776
|| (WAIT_OBJECT_0 ==
1773
1777
WaitForSingleObject (GetStdHandle
1774
1778
(STD_INPUT_HANDLE ),
1775
1779
0 )))
1776
1780
|| !read_tty ))
1777
1781
continue ;
1782
+ #else
1783
+ if (!i && (!_kbhit () || !read_tty ) ) continue ;
1778
1784
# endif
1779
1785
} else
1780
1786
i = select (width , (void * )& readfds , (void * )& writefds ,
@@ -1976,12 +1982,12 @@ int MAIN(int argc, char **argv)
1976
1982
}
1977
1983
}
1978
1984
#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 )
1982
1986
else if ((_kbhit ())
1983
1987
|| (WAIT_OBJECT_0 ==
1984
1988
WaitForSingleObject (GetStdHandle (STD_INPUT_HANDLE ), 0 )))
1989
+ #else
1990
+ else if (_kbhit ())
1985
1991
# endif
1986
1992
#elif defined (OPENSSL_SYS_NETWARE )
1987
1993
else if (_kbhit ())
0 commit comments