all repos — fluxbox @ cc1193ef0caaf5de9d7d1f443a7e90f44f5277a1

custom fork of the fluxbox windowmanager

FbTk/SignalHandler.cc: Use HAVE_SIGACTION, with signal() fallback

This fixes platforms without sigaction, like Windows.
Ryan Pavlik rpavlik@iastate.edu
commit

cc1193ef0caaf5de9d7d1f443a7e90f44f5277a1

parent

f40be36f7567a78423f93bb291ef61fe62f5337a

1 files changed, 7 insertions(+), 1 deletions(-)

jump to
M src/FbTk/SignalHandler.ccsrc/FbTk/SignalHandler.cc

@@ -46,6 +46,7 @@ // get old signal handler for this signum

if (oldhandler_ret != 0) *oldhandler_ret = s_signal_handler[signum]; +#ifdef HAVE_SIGACTION struct sigaction sa; // set callback sa.sa_handler = SignalHandler::handleSignal;

@@ -54,7 +55,12 @@ sa.sa_flags = 0;

if (sigaction(signum, &sa, 0) == -1) return false; - +#else + // Fallback code for Windows and other platforms lacking sigaction. + if (signal(signum, &SignalHandler::handleSignal) == SIG_ERR) { + return false; + } +#endif s_signal_handler[signum] = eh; return true;