@@ -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
@@ -1758,17 +1765,16 @@ int MAIN(int argc, char **argv)
1758
1765
tv .tv_usec = 0 ;
1759
1766
i = select (width , (void * )& readfds , (void * )& writefds ,
1760
1767
NULL , & tv );
1761
- # if defined(OPENSSL_SYS_WINCE ) || defined(OPENSSL_SYS_MSDOS )
1762
- if (!i && (!_kbhit () || !read_tty ))
1763
- continue ;
1764
- # else
1768
+ #if defined(OPENSSL_USE_STD_INPUT_HANDLE )
1765
1769
if (!i && (!((_kbhit ())
1766
1770
|| (WAIT_OBJECT_0 ==
1767
1771
WaitForSingleObject (GetStdHandle
1768
1772
(STD_INPUT_HANDLE ),
1769
1773
0 )))
1770
1774
|| !read_tty ))
1771
1775
continue ;
1776
+ #else
1777
+ if (!i && (!_kbhit () || !read_tty ) ) continue ;
1772
1778
# endif
1773
1779
} else
1774
1780
i = select (width , (void * )& readfds , (void * )& writefds ,
@@ -1970,12 +1976,12 @@ int MAIN(int argc, char **argv)
1970
1976
}
1971
1977
}
1972
1978
#if defined(OPENSSL_SYS_WINDOWS ) || defined(OPENSSL_SYS_MSDOS )
1973
- # if defined(OPENSSL_SYS_WINCE ) || defined(OPENSSL_SYS_MSDOS )
1974
- else if (_kbhit ())
1975
- # else
1979
+ #if defined(OPENSSL_USE_STD_INPUT_HANDLE )
1976
1980
else if ((_kbhit ())
1977
1981
|| (WAIT_OBJECT_0 ==
1978
1982
WaitForSingleObject (GetStdHandle (STD_INPUT_HANDLE ), 0 )))
1983
+ #else
1984
+ else if (_kbhit ())
1979
1985
# endif
1980
1986
#elif defined (OPENSSL_SYS_NETWARE )
1981
1987
else if (_kbhit ())
0 commit comments