examples: fix ecore_exe_child example to work properly on Windows

Summary: ecore_main_fd_handler_add is not working on Windows

Reviewers: vtorri, raster

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4470
This commit is contained in:
Andrii Kroitor 2017-06-15 12:17:39 +09:00 committed by Carsten Haitzler (Rasterman)
parent 34063c362c
commit 0d2d0f67e8
1 changed files with 19 additions and 1 deletions

View File

@ -8,8 +8,14 @@
#define BUFFER_SIZE 1024
#ifdef _WIN32
#define HANDLER_TYPE Ecore_Win32_Handler
#else
#define HANDLER_TYPE Ecore_Fd_Handler
#endif
static Eina_Bool
_fd_handler_cb(void *data EINA_UNUSED, Ecore_Fd_Handler *fd_handler EINA_UNUSED)
_fd_handler_cb(void *data EINA_UNUSED, HANDLER_TYPE *fd_handler EINA_UNUSED)
{
static int numberOfMessages = 0;
char message[BUFFER_SIZE];
@ -40,10 +46,22 @@ main(void)
if (!ecore_init())
goto error;
#ifdef _WIN32
/* note that stdin fd's on windows don't work the same
* as on unixes. this uses stdin just as a quick
* example that's simple instead of a more complex
* one, so this won't actually work on windows unless
* you use a fd that comes from somewhere that is
* select()able. */
ecore_main_win32_handler_add(GetStdHandle(STD_INPUT_HANDLE),
_fd_handler_cb,
NULL);
#else
ecore_main_fd_handler_add(STDIN_FILENO,
ECORE_FD_READ,
_fd_handler_cb,
NULL, NULL, NULL);
#endif
ecore_main_loop_begin();
ecore_shutdown();