openssl: fix keypress requirement in apps on win32
Reapply b910613792
.
Fixes: https://github.com/iojs/io.js/issues/589
PR-URL: https://github.com/iojs/io.js/pull/1389
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
This commit is contained in:
Родитель
ae8831f240
Коммит
116c54692a
|
@ -180,6 +180,13 @@ typedef unsigned int u_int;
|
|||
# include <fcntl.h>
|
||||
#endif
|
||||
|
||||
/* Use Windows API with STD_INPUT_HANDLE when checking for input?
|
||||
Don't look at OPENSSL_SYS_MSDOS for this, since it is always defined if
|
||||
OPENSSL_SYS_WINDOWS is defined */
|
||||
#if defined(OPENSSL_SYS_WINDOWS) && !defined(OPENSSL_SYS_WINCE) && defined(STD_INPUT_HANDLE)
|
||||
#define OPENSSL_USE_STD_INPUT_HANDLE
|
||||
#endif
|
||||
|
||||
#undef PROG
|
||||
#define PROG s_client_main
|
||||
|
||||
|
@ -1757,10 +1764,7 @@ int MAIN(int argc, char **argv)
|
|||
tv.tv_usec = 0;
|
||||
i = select(width, (void *)&readfds, (void *)&writefds,
|
||||
NULL, &tv);
|
||||
# if defined(OPENSSL_SYS_WINCE) || defined(OPENSSL_SYS_MSDOS)
|
||||
if (!i && (!_kbhit() || !read_tty))
|
||||
continue;
|
||||
# else
|
||||
#if defined(OPENSSL_USE_STD_INPUT_HANDLE)
|
||||
if (!i && (!((_kbhit())
|
||||
|| (WAIT_OBJECT_0 ==
|
||||
WaitForSingleObject(GetStdHandle
|
||||
|
@ -1768,6 +1772,8 @@ int MAIN(int argc, char **argv)
|
|||
0)))
|
||||
|| !read_tty))
|
||||
continue;
|
||||
#else
|
||||
if(!i && (!_kbhit() || !read_tty) ) continue;
|
||||
# endif
|
||||
} else
|
||||
i = select(width, (void *)&readfds, (void *)&writefds,
|
||||
|
@ -1969,12 +1975,12 @@ int MAIN(int argc, char **argv)
|
|||
}
|
||||
}
|
||||
#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_MSDOS)
|
||||
# if defined(OPENSSL_SYS_WINCE) || defined(OPENSSL_SYS_MSDOS)
|
||||
else if (_kbhit())
|
||||
# else
|
||||
#if defined(OPENSSL_USE_STD_INPUT_HANDLE)
|
||||
else if ((_kbhit())
|
||||
|| (WAIT_OBJECT_0 ==
|
||||
WaitForSingleObject(GetStdHandle(STD_INPUT_HANDLE), 0)))
|
||||
#else
|
||||
else if (_kbhit())
|
||||
# endif
|
||||
#elif defined (OPENSSL_SYS_NETWARE)
|
||||
else if (_kbhit())
|
||||
|
|
Загрузка…
Ссылка в новой задаче