From 649098737de22c78e990674ce9e25caa61444b00 Mon Sep 17 00:00:00 2001 From: Danny Daemonic Date: Thu, 18 May 2023 04:39:17 -0700 Subject: [PATCH 1/2] Fix for w64devkit and mingw --- examples/main/main.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/examples/main/main.cpp b/examples/main/main.cpp index fe1c847a7f490..7be2511d1d7a9 100644 --- a/examples/main/main.cpp +++ b/examples/main/main.cpp @@ -47,6 +47,11 @@ void sigint_handler(int signo) { } } #endif +#if defined (_WIN32) +BOOL console_ctrl_handler(DWORD ctrl_type) { + return (ctrl_type == CTRL_C_EVENT) ? (sigint_handler(SIGINT), true) : false; +} +#endif int main(int argc, char ** argv) { gpt_params params; @@ -241,10 +246,7 @@ int main(int argc, char ** argv) { sigint_action.sa_flags = 0; sigaction(SIGINT, &sigint_action, NULL); #elif defined (_WIN32) - auto console_ctrl_handler = [](DWORD ctrl_type) -> BOOL { - return (ctrl_type == CTRL_C_EVENT) ? (sigint_handler(SIGINT), true) : false; - }; - SetConsoleCtrlHandler(static_cast(console_ctrl_handler), true); + SetConsoleCtrlHandler(console_ctrl_handler, true); #endif fprintf(stderr, "%s: interactive mode on.\n", __func__); From 036c3675df4370afe1cbfc8fe0e664a7af9f1df8 Mon Sep 17 00:00:00 2001 From: Danny Daemonic Date: Thu, 18 May 2023 05:03:39 -0700 Subject: [PATCH 2/2] Try to salvage the lambda function --- examples/main/main.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/examples/main/main.cpp b/examples/main/main.cpp index 7be2511d1d7a9..18673ed2e00f2 100644 --- a/examples/main/main.cpp +++ b/examples/main/main.cpp @@ -47,11 +47,6 @@ void sigint_handler(int signo) { } } #endif -#if defined (_WIN32) -BOOL console_ctrl_handler(DWORD ctrl_type) { - return (ctrl_type == CTRL_C_EVENT) ? (sigint_handler(SIGINT), true) : false; -} -#endif int main(int argc, char ** argv) { gpt_params params; @@ -246,7 +241,10 @@ int main(int argc, char ** argv) { sigint_action.sa_flags = 0; sigaction(SIGINT, &sigint_action, NULL); #elif defined (_WIN32) - SetConsoleCtrlHandler(console_ctrl_handler, true); + auto console_ctrl_handler = +[](DWORD ctrl_type) -> BOOL { + return (ctrl_type == CTRL_C_EVENT) ? (sigint_handler(SIGINT), true) : false; + }; + SetConsoleCtrlHandler(static_cast(console_ctrl_handler), true); #endif fprintf(stderr, "%s: interactive mode on.\n", __func__);