@@ -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
@@ -1583,17 +1590,16 @@ int MAIN(int argc, char **argv)
1583
1590
tv .tv_usec = 0 ;
1584
1591
i = select (width , (void * )& readfds , (void * )& writefds ,
1585
1592
NULL , & tv );
1586
- # if defined(OPENSSL_SYS_WINCE ) || defined(OPENSSL_SYS_MSDOS )
1587
- if (!i && (!_kbhit () || !read_tty ))
1588
- continue ;
1589
- # else
1593
+ #if defined(OPENSSL_USE_STD_INPUT_HANDLE )
1590
1594
if (!i && (!((_kbhit ())
1591
1595
|| (WAIT_OBJECT_0 ==
1592
1596
WaitForSingleObject (GetStdHandle
1593
1597
(STD_INPUT_HANDLE ),
1594
1598
0 )))
1595
1599
|| !read_tty ))
1596
1600
continue ;
1601
+ #else
1602
+ if (!i && (!_kbhit () || !read_tty ) ) continue ;
1597
1603
# endif
1598
1604
} else
1599
1605
i = select (width , (void * )& readfds , (void * )& writefds ,
@@ -1792,12 +1798,12 @@ int MAIN(int argc, char **argv)
1792
1798
}
1793
1799
}
1794
1800
#if defined(OPENSSL_SYS_WINDOWS ) || defined(OPENSSL_SYS_MSDOS )
1795
- # if defined(OPENSSL_SYS_WINCE ) || defined(OPENSSL_SYS_MSDOS )
1796
- else if (_kbhit ())
1797
- # else
1801
+ #if defined(OPENSSL_USE_STD_INPUT_HANDLE )
1798
1802
else if ((_kbhit ())
1799
1803
|| (WAIT_OBJECT_0 ==
1800
1804
WaitForSingleObject (GetStdHandle (STD_INPUT_HANDLE ), 0 )))
1805
+ #else
1806
+ else if (_kbhit ())
1801
1807
# endif
1802
1808
#elif defined (OPENSSL_SYS_NETWARE )
1803
1809
else if (_kbhit ())
0 commit comments