From 0d2d0f67e8b0b1b77ebc842b2b356e60e45df9fb Mon Sep 17 00:00:00 2001 From: Andrii Kroitor Date: Thu, 15 Jun 2017 12:17:39 +0900 Subject: [PATCH] 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 --- unsorted/ecore/ecore_exe_example_child.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/unsorted/ecore/ecore_exe_example_child.c b/unsorted/ecore/ecore_exe_example_child.c index c22a7e50..b59ff815 100644 --- a/unsorted/ecore/ecore_exe_example_child.c +++ b/unsorted/ecore/ecore_exe_example_child.c @@ -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();